Я должен вставить несколько записей в 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 так или иначе в мою другую таблицу после каждого повторения?
Как передать этот набор результатов некоторой хранимой процедуре, если существует путь?
Вы можете заставить базу данных сделать эту работу за вас:
INSERT INTO othertable
SELECT col1, col2 FROM table1
WHERE arg1 = ?
Таким образом, вам не придется отправлять в базу данных копию данных, которые там уже существуют.
Вы можете выполнить один запрос, если передадите список значений параметров через запятую в хранимую процедуру и используете предложение IN (val1, val2, ...)
. Не уверен, что MySQL ограничивает длину предложения IN.
Вот реализация split.