CRUD With Java n MySQL (Batch Execution)

Kita telah berhasil membuat CRUD dengan Java dan MySQL. Tapi pada episode kali ini kita akan membahas yang namanya Batch Execution. Apa itu?.
Misalnya kita ingin meng-insert seratus baris data dalam sebuah loop, kita bisa menggunakan fasilitas batch execution dari PreparedStatement. Batch execution mengumpulkan semua eksekusi program yang akan dilaksanakan, setelah semuanya terkumpul batch execution kemudian mengirimkan kumpulan eksekusi program secara bersamaan ke DBMS dalam satu kesatuan. Metode ini sangat efisien karena mengurangi overhead yang diperlukan program untuk berkomunikasi dengan DBMS. Setiap kali iterasi, method setString() dipanggil untuk mengisikan sebuah string ke dalam PreparedStatement, kemudian method addBatch() dipanggil untuk mengumpulkan batch dalam satu wadah. Setelah iterasi selesai, method executeBatch() dipanggil untuk melaksanakan semua keseratus instruksi insert secara berurut dengan sekali saja melaksanakan koneksi ke database. [Ifnu Bima]

Berikut contoh programnya.

Pertama buka project yang telah kita buat pada episode sebelumnya dan buat class baru. Dalam hal ini ane beri nama BatchExecution.

5-19-2013 8-32-37 PM

Ketikkan kode berikut.

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class BatchExecution {

    public static void main(String[] args) throws SQLException {
        String insert = "Insert into tbmahasiswa values(?,?,?,?)";

        Connection connection = null;
        PreparedStatement ps = null;
        try {
            connection = koneksiJavaMySql.Koneksi.getKoneksi();
            connection.setAutoCommit(false);
            ps = connection.prepareStatement(insert);
            for (int i = 1; i <= 100; i++) {
                ps.setString(1, i + "");
                ps.setString(2, "akagami");
                ps.setString(3, "east blue");
                ps.setString(4, "1992-05-03");
                ps.addBatch();
            }
            ps.executeBatch();
            connection.commit();
            connection.setAutoCommit(true);
            System.out.println("Insert Berhasil");
        } catch (SQLException e) {
            System.out.println("Error : " + e.getMessage());
            connection.rollback();
        } finally {
            if (ps != null) {
                ps.close();
            }
        }
    }
}

Jalankan program kawan-kawan dan lihat apa yang terjadi.

Dowload project latihannya disini.

Tinggalkan komentar