Несколько располагают в ряд, вставляют в SQL Server от Java [дубликат]

6
задан ROMANIA_engineer 10 January 2016 в 20:34
поделиться

3 ответа

Вы можете использовать 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) {}
}

См. Также :

15
ответ дан 8 December 2019 в 12:57
поделиться

Используйте партию.

Ознакомьтесь с методами addBatch (), executeBatch () и т. Д. В Java Заявлении

В качестве простого примера проверьте здесь (но я бы предложил использовать PreparedStatement)

2
ответ дан 8 December 2019 в 12:57
поделиться

Вы можете передать одну очень длинную строку в SQL с несколькими вставками как один оператор в SQL Server. Однако это не сработает, если вы выполняете параметризованные запросы. А объединенные строки SQL - это «вообще плохая идея».

Возможно, вам лучше взглянуть на команду BULK INSERT . У него есть проблема жесткости в отношении порядка столбцов и тому подобного. Но это ПУТЬ БЫСТРО !!

1
ответ дан 8 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

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