JDBC, ВСТАВЬТЕ НЕСКОЛЬКО записей, полученных из запроса в другую таблицу

Я должен вставить несколько записей в mysql базу данных сразу. То, что я делаю, SELECT на одной таблице, из моего приложения с оператором Prepared. То, что я должен сделать, должно вставить те результаты в еще одну временную таблицу.

String sqlquery = "select * from table1 where arg1 = ?";
PreparedStatement statement;
statement = con.prepareStatement(sql);


ArrayList<String>termlist = index.getTermList();
for (int i = 0; i < termlist.size(); i++) 
{
    String search = termlist.get(i);
    statement.setString(1,search);

    ResultSet rs1 = statement.executeQuery(); //
}

Эти наборы могли бы быть большими. Что самый быстрый путь состоит в том, чтобы ввести этот ResultSet так или иначе в мою другую таблицу после каждого повторения?

Как передать этот набор результатов некоторой хранимой процедуре, если существует путь?

1
задан Oded 25 July 2010 в 07:06
поделиться

2 ответа

Вы можете заставить базу данных сделать эту работу за вас:

INSERT INTO othertable
SELECT col1, col2 FROM table1
WHERE arg1 = ?

Таким образом, вам не придется отправлять в базу данных копию данных, которые там уже существуют.

2
ответ дан 2 September 2019 в 22:47
поделиться

Вы можете выполнить один запрос, если передадите список значений параметров через запятую в хранимую процедуру и используете предложение IN (val1, val2, ...). Не уверен, что MySQL ограничивает длину предложения IN.

Вот реализация split.

0
ответ дан 2 September 2019 в 22:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: