Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam MySQL Menggunakan PreparedStatement Java?

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

Linda Hamilton
Linda Hamiltonasal
2024-12-20 15:31:09430semak imbas

How Can I Efficiently Insert Multiple Rows into MySQL Using Java's PreparedStatement?

Masukkan Berbilang Baris ke dalam MySQL dengan PreparedStatement Menggunakan PreparedStatement

Dalam Java, memasukkan berbilang baris dengan cekap ke dalam jadual MySQL boleh dicapai menggunakan kumpulan PreparedStatement keupayaan pemprosesan. Sebelum ini, melaksanakan pernyataan SQL individu untuk setiap baris adalah amalan biasa:

for (String element : array) {
    myStatement.setString(1, element[0]);
    myStatement.setString(2, element[1]);

    myStatement.executeUpdate();
}

Walau bagaimanapun, untuk mengoptimumkan prestasi, MySQL menawarkan sintaks yang membenarkan memasukkan berbilang baris sekaligus:

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

Menggunakan pendekatan ini dengan PreparedStatement memerlukan kelompok pemprosesan:

  1. Buat PreparedStatement: Sediakan pernyataan SQL dan tetapkan parameternya untuk setiap baris. Gunakan addBatch() untuk menambahkan setiap pernyataan pada kelompok.
  2. Laksanakan Kelompok: Setelah semua baris ditambahkan, panggil executeBatch() untuk melaksanakan keseluruhan kelompok. Kaedah ini mengembalikan tatasusunan kiraan kemas kini, menunjukkan bilangan baris yang terjejas oleh setiap pernyataan.

Berikut ialah contoh yang menggambarkan proses:

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.
            }
        }
    }
}

Melaksanakan kelompok setiap 1000 baris membantu mengelakkan pengehadan potensi yang dikenakan oleh pemacu atau pangkalan data JDBC pada kelompok saiz.

Rujuk tutorial JDBC untuk mendapatkan butiran lanjut tentang menggunakan objek PreparedStatement dan Statement untuk kemas kini kelompok.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam MySQL Menggunakan PreparedStatement Java?. 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