Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam MySQL Menggunakan PreparedStatements?
Untuk mengoptimumkan sisipan baris ke dalam jadual MySQL, anda boleh memanfaatkan sintaks yang disokong:
INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]
Walau bagaimanapun , jika bilangan baris untuk disisipkan secara dinamik, menggunakan PreparedStatement boleh mencabar.
Untuk memasukkan berbilang baris secara dinamik menggunakan PreparedStatement, anda boleh mencipta satu kelompok menggunakan kaedah addBatch() dan melaksanakannya dengan executeBatch().
Ini contohnya:
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. } } } }
Ini pendekatan melaksanakan kelompok setiap 1000 item, dengan mengambil kira pengehadan dalam pemacu JDBC atau panjang kelompok pangkalan data.
Jika menggunakan PreparedStatement dengan batching tidak boleh dilaksanakan, kaedah alternatif untuk memasukkan berbilang baris termasuk:
Rujukan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Berbilang Baris dengan Cekap ke dalam MySQL Menggunakan PreparedStatements?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!