首頁 >資料庫 >mysql教程 >如何使用Java的PreparedStatement優化MySQL中的多行插入?

如何使用Java的PreparedStatement優化MySQL中的多行插入?

Barbara Streisand
Barbara Streisand原創
2024-12-27 09:11:10547瀏覽

How to Optimize Multiple Row Inserts in MySQL using Java's PreparedStatement?

Java中使用PreparedStatement同時插入多行

問題:

如何使用Java將多行插入MySQL 表中,利用支援的MySQL語法在一個語句中插入多個值?

答案:

利用PreparedStatement#addBatch() 和PreparedStatement#executeBatch()允許建立一批插入及其隨後的

範例:

考慮以下範例來啟動批次插入:

public void save(List<Entity> entities) throws SQLException {
    try (
        Connection connection = database.getConnection();
        PreparedStatement statement = connection.prepareStatement(SQL_INSERT);
    ) {
        int i = 0;

        for (Entity entity : entities) {
            statement.setString(1, entity.getSomeProperty());
            // ...

            statement.addBatch();
            i++;

            if (i % 1000 == 0 || i == entities.size()) {
                statement.executeBatch(); // Execute every 1000 items.
            }
        }
    }
}

實現細節:

  • 插入是分批執行的1000,以避免JDBC 驅動程式或資料庫對批次長度的潛在限制。
  • JDBC 教學提供了有關使用PreparedStatements 和批次更新的其他資源。

以上是如何使用Java的PreparedStatement優化MySQL中的多行插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn