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

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

Barbara Streisand
Lepaskan: 2024-11-29 11:16:12
asal
841 orang telah melayarinya

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

Memasukkan Berbilang Baris ke dalam MySQL menggunakan PreparedStatement

Apabila cuba memasukkan banyak baris dengan cekap ke dalam jadual MySQL, seseorang mungkin menghadapi batasan dengan pendekatan PreparedStatement tradisional kerana ia tidak boleh bilangan baris yang hendak disisipkan ditentukan terlebih dahulu dalam PreparedStatement.

Untuk mengoptimumkan proses sisipan, MySQL menyediakan sintaks sisipan kelompok, seperti berikut:

INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]
Salin selepas log masuk

Gunakan PreparedStatement untuk sisipan kelompok

Gunakan PreparedStatement Langkah-langkah untuk memasukkan kelompok adalah seperti berikut:

  1. Gunakan addBatch() Kaedah menambah setiap baris data ke kumpulan.
  2. Gunakan kaedah executeBatch() untuk melaksanakan pemprosesan kelompok.

Kod sampel:

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.
            }
        }
    }
}
Salin selepas log masuk

Perlu diambil perhatian bahawa apabila melakukan penyisipan kelompok, adalah disyorkan untuk melaksanakannya setiap bilangan baris tertentu (untuk contoh, 1000), kerana sesetengah pemacu atau pangkalan data JDBC mungkin mempunyai had pada panjang kelompok.

Rujukan berkaitan:

  • Tutorial JDBC - Menggunakan PreparedStatement
  • Tutorial JDBC - Menggunakan Objek Penyata untuk Kemas Kini Kelompok

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan