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
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!