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

Post a Response