Menggunakan JDBC Batch Insert
Pada aplikasi Java yang membutuhkan proses inputan data ke sistem database yang sifatnya masif (banyak) seperti dalam kasus export file csv/xls ke aplikasi, anda dapat menggunakan BATCH INSERT pada proses inputan data menggunakan JDBC, cara ini akan lebih menghemat cost connection database karena hanya dibutuhkan satu prosess insert data saja. Berikut kode program singkatnya
String sql1 = "INSERT INTO produk (kode,nama,harga) VALUES ('P001','TV',50000)"; String sql2 = "INSERT INTO produk (kode,nama,harga) VALUES ('P011','Kulkas',60000)"; String sql3 = "INSERT INTO produk (kode,nama,harga) VALUES ('P021','Laptop',80000)"; String[] ar_sql = {sql1,sql2,sql3}; Connection con = DBKoneksi.getConnection(); // ambil connection dari class koneksi anda Statement st = con.createStatement(); for(String sql : ar_sql){ st.addBatch( sql ); } st.executeBatch(); st.close(); con.close();
Batch Insert – PrepareStatement
Batch insert juga dapat digunakan untuk prepare statement
Produk p1 = new Produk('TV01','TV',50000); Produk p2 = new Produk('K001','Kulkas',70000); Produk p3 = new Produk('L001','Laptop',80000); List<Produk> list = new ArrayList<Produk>(); list.add(p1); list.add(p2); list.add(p3); String sql = "INSERT INTO produk (kode,nama,harga) VALUES (?,?,?)"; Connection con = DBKoneksi.getConnection(); // ambil connection dari class koneksi anda PreparedStatements ps = con.prepareStatement( sql ); for(Produk pro : list){ ps.setString(1,pro.getKode()); // ? 1 ps.setString(2,pro.getNama()); // ? 2 ps.setDouble(3,pro.getHarga()); // ? 3 ps.addBatch(); } ps.executeBatch(); ps.close(); con.close();
Selamat mencoba