Вы можете использовать PreparedStatement # addBatch ()
для создания пакета и executeBatch ()
для его выполнения.
Connection connection = null;
PreparedStatement statement = null;
try {
connection = database.getConnection();
statement = connection.prepareStatement(SQL);
for (int i = 0; i < items.size(); i++) {
Item item = items.get(i);
statement.setString(1, item.getSomeValue());
// ...
statement.addBatch();
if ((i + 1) % 100 == 0) {
statement.executeBatch(); // Execute every 100 items.
}
}
statement.executeBatch();
} finally {
if (statement != null) try { statement.close(); } catch (SQLException logOrIgnore) {}
if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {}
}
См. Также :
Используйте партию.
Ознакомьтесь с методами addBatch (), executeBatch () и т. Д. В Java Заявлении
В качестве простого примера проверьте здесь (но я бы предложил использовать PreparedStatement)
Вы можете передать одну очень длинную строку в SQL с несколькими вставками как один оператор в SQL Server. Однако это не сработает, если вы выполняете параметризованные запросы. А объединенные строки SQL - это «вообще плохая идея».
Возможно, вам лучше взглянуть на команду BULK INSERT . У него есть проблема жесткости в отношении порядка столбцов и тому подобного. Но это ПУТЬ БЫСТРО !!