Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam MySQL Menggunakan Java PreparedStatements?

Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam MySQL Menggunakan Java PreparedStatements?

Barbara Streisand
Barbara Streisandasal
2024-12-01 01:59:14377semak imbas

How Can I Efficiently Insert Multiple Rows into MySQL Using Java PreparedStatements?

Memasukkan Berbilang Baris ke dalam MySQL dengan PreparedStatement

Selalunya, terdapat keperluan untuk memasukkan berbilang baris ke dalam pangkalan data sekaligus. Walaupun kaedah tradisional yang melibatkan lelaran pada setiap baris dan melaksanakan pernyataan sisipan boleh menjadi tidak cekap, MySQL menawarkan sintaks yang membenarkan memasukkan berbilang baris dalam satu pertanyaan:

INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]

Menggunakan PreparedStatements untuk Batching

Untuk mengoptimumkan proses ini menggunakan Java dan PreparedStatements, pertimbangkan batching, disokong oleh kelas PreparedStatement. Dengan mencipta kumpulan dengan addBatch(), anda boleh melaksanakannya sebagai kumpulan menggunakan executeBatch().

Contoh Kod

Contoh berikut menunjukkan cara memasukkan sisipan kelompok:

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();
            }
        }
    }
}

Pelaksanaan Kelompok Pengoptimuman

Pengumpulan dilaksanakan setiap 1000 item untuk mengelakkan pengehadan potensi pemacu atau pangkalan data JDBC.

Sumber Tambahan

  • [ Tutorial JDBC - Menggunakan PreparedStatement](https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)
  • [Tutorial JDBC - Menggunakan Objek Penyata untuk Kemas Kini Kelompok](https://docs.oracle .com/javase/tutorial/jdbc/basics/batchupdates.html)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam MySQL Menggunakan Java PreparedStatements?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn