<< Mencintai dengan Hati | Home | Lowongan Kerja Lion Air 2013 >>

[Java] Penanganan Transaksi pada JDBC

PreparedStatement, Java, JDBC, Database

Seringkali dalam pemrosesan data pada database, aplikasi melakukan beberapa proses update dan insert secara bersamaan dalam satu transaksi. Contoh sederhana misalnya, dalam transaksi pembayaran mahasiswa selain mengupdate status tagihan, memasukkan ke data pembayaran, maka perlu juga ditambahkan status registrasinya. Ketiga proses ini harus berhasil semuanya. Jika terdapat salah satu proses yang gagal, maka keseluruhan proses harus dibatalkan (rollback) agar data tetap konsisten.

Java memiliki beberapa mekanisme untuk menangani transaksi. Diantaranya dengan menggunakan PreparedStatement. Contoh berikut penggunaan PreparedStatement untuk penanganan transaksi:

private void simpan() {
    Connection con = null;
    String sql = "";
    try {
        /* buat koneksi */
        con = MyCon.connect();

        /* buat agar koneksi tidak otomatis commit */
        con.setAutoCommit(false);

        sql = "UPDATE e_payment SET sts_bayar=? WHERE nmr_tagihan=?";
        PreparedStatement pst = con.prepareStatement(sql);
        pst.setInt(1, 1);
        pst.setString(2, "1234567890");
        pst.executeUpdate();

        sql = "INSERT INTO PEMBAYARAN(nim, spp, tgl_bayar) VALUES(?, ?, ?)";
        pst = con.prepareStatement(sql);
        pst.setString(1, "1234567890");
        pst.setInt(2, 1500000);
        pst.setTimestamp(3, new Timestamp(new java.util.Date().getTime()));
        pst.executeUpdate();

        sql = "INSERT INTO REGISTRASI(nim, tgl_reg) VALUES(?, ?)";
        pst = con.prepareStatement(sql);
        pst.setString(1, "1234567890");
        pst.setTimestamp(2, new Timestamp(new java.util.Date().getTime()));
        pst.executeUpdate();

        /* panggil commit secara manual */
        con.commit();
        con.setAutoCommit(true);
    }
    catch (Exception e) {
        e.printStackTrace();
        try {
            /* kembalikan ke semula jika error */
            con.rollback();
        }
        catch (Exception ex) {
        }
    }
}

Ketiga proses tersebut harus berhasil dijalankan semuanya, atau jika ada kegagalan salah satunya, maka kesemua proses harus dibatalkan.

Categories : Java Programming

Export this post as PDF document  Export this post to PDF document

Related Posts
Implementasi Single Sign On dengan JOSSO
Project Euler - Problem 2
Project Euler - Problem 1
Menampilkan Favicon
String MD5 Hash dengan Java


Social Bookmarks :  Add this post to Slashdot    Add this post to Digg    Add this post to Reddit    Add this post to Delicious    Add this post to Stumble it    Add this post to Google    Add this post to Technorati    Add this post to Bloglines    Add this post to Facebook    Add this post to Furl    Add this post to Windows Live    Add this post to Yahoo!


Avatar: Guru Pantura

Re: [Java] Penanganan Transaksi pada JDBC

Waduuuuhhh, out of topic saya pak :( Belum ngerti masalah yang beginian pak... apakah ini fungsi java pada aplikasi pembayaran biaya kuliah di kampus?
Avatar: Umar Faisol

Re: [Java] Penanganan Transaksi pada JDBC

Waduuuuhhh, out of topic saya pak :( Belum ngerti masalah yang beginian pak... apakah ini fungsi java pada aplikasi pembayaran biaya kuliah di kampus?
Ini masalah programming pak Guru. Memang untuk yang menekuni bidang IT.
Avatar: suzuki semarang

Re: [Java] Penanganan Transaksi pada JDBC

dulu jaman kuliah belum sempet diajarin JAVA baru turbo c basic sama delphi, jadul bener dah
Avatar: Umar Faisol

Re: [Java] Penanganan Transaksi pada JDBC

dulu jaman kuliah belum sempet diajarin JAVA baru turbo c basic sama delphi, jadul bener dah
Memang lain orang lain pula jamannya pak ^_^
Avatar: BlogS of Hariyanto

Re: [Java] Penanganan Transaksi pada JDBC

saya kurang paham soal yang beginian sobat, jadi duduk manis saja mencoba menyimak :-)
Avatar: Umar Faisol

Re: [Java] Penanganan Transaksi pada JDBC

saya kurang paham soal yang beginian sobat, jadi duduk manis saja mencoba menyimak :-)
Iya silakan pak Hariyanto
Avatar: BlogS of Hariyanto

Re: [Java] Penanganan Transaksi pada JDBC

hadir kembali mencoba menyimak sobat :-)
Avatar: Umar Faisol

Re: [Java] Penanganan Transaksi pada JDBC

Hehe, selamat datang pak Hariyanto

Add a comment Send a TrackBack