setAutoCommit adalah sebuah property objek Connection JDBC di Java. Semisalnya ada beberapa perintah SQL yang harus dijalankan pada sebuah transaksi dan memastikan semua transaksi harus sukses maka gunakanlah property ini.
Transaction pada database yang memilikinya, memiliki 2 perintah inti dalam mengakhiri kumpulan perintah SQL yaitu commit dan rollback. commit berarti menyimpan dengan sempurna semua data hasil kumpulan perintah SQL benar-benar ke dalam media penyimpanan dan rollback adalah kebalikanya, yaitu membatalkan semua kumpulan perintah SQL yang diberikan.
Yah, sebenarnya proses di database itu bertingkat pada database yang memiliki Transaction. Database tidak akan melakukan modifikasi data ke sebuah table sebelum dieksekusi perintah commit. Namun demikian ada beberapa database yang menon-aktifkan atau tidak memiliki Transaction. Sebut saja MySQL-MyISAM dan SqlLite. Beberapa contoh database yang memiliki fitur Transaction ini adalah : MySQL-InnoDB, PostgreSQL, Oracle, MSSQL Server.
Berikut dibawah ini contoh penggunaan setAutoCommit yang ada di Java JDBC.
import java.sql.*;
public class contohAutoCommit {
private static Connection con;
private static Boolean openCon() {
// isikan script membuka hub dgn database
}
private static void closeCon() {
// isikan script menutup hub dgn database
}
public static void main(String[] args) {
PreparedStatement ps;
String strsql1 = “INSERT INTO JUAL (KODE, ”;
strsql1 += “NAMA_BRG, JUMLAH, HARGA) “;
strsql1 += “VALUES (?, ?, ?, ?) “;
String strsql2 = “UPDATE BARANG SET STOCK “;
strsql2 = “= STOCK – ? WHERE KODE = ?”;
String kodeBarang = “A001”;
String namaBarang = “SIKAT GIGI”;
Integer jumlahJual = 4;
Integer hargaJual = 1500;
System.out.print(“PROSES..”);
if (openCon()) {
try {
con.setAutoCommit(true);
ps = con.prepareStatement(strsql1);
ps.setString(1, kodeBarang);
ps.setString(2, namaBarang);
ps.setInt(3, jumlahJual);
ps.setInt(4, hargaJual);
if (ps.executeUpdate()>0) {
ps = con.prepareStatement(strsql2);
ps.setInt(1, jumlahJual);
ps.setString(2, kodeBarang);
if (ps.executeUpdate()>0) {
con.commit();
System.out.println(“OK”);
} else {
con.rollback();
System.out.println(“GAGAL”):
}
} else {
con.rollback();
System.out.println(“GAGAL”);
}
ps.close();
con.setAutoCommit(true);
} catch (Exception e) {
e.printStackTrace();
}
closeCon();
} else {
System.out.println(“KONEKSI DB ERROR”);
}
}
System.exit(0);
}
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar
Jika ada kritik dan saran, komentari Artikel ini.