JDBC Transaction Örneği
JDBC Dersleri‘ne devam ediyoruz. Önceki derste Transtaction Kavramının ne olduğunu ve metodların ne işe yaradığını görmüştük. ( Buradan )
Bunu bir örnekle pekiştirelim. Teoride anlattığımı uygulamalı olarak bakalım.
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package jdbc_transtaction; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; /** * * @author BurakKutbay.com */ public class JDBC_Transtaction { /** * @param args the command line arguments * @throws java.lang.ClassNotFoundException * @throws java.sql.SQLException */ public static void main(String[] args) throws ClassNotFoundException, SQLException { // TODO code application logic here { String driverClass = "sun.jdbc.odbc.JdbcOdbcDriver"; Class.forName(driverClass); String url = "jdbc:odbc:mydatasource"; String username = "burak"; String password = "kutbay"; Connection baglanti; baglanti = DriverManager.getConnection(url, username, password); try { double para = 100; String id = "Burak"; baglanti.setAutoCommit(false); String sorgu = "update Para" + " set Kalan=Kalan-" + para + " where id=" + id; Statement stmtFrom = baglanti.createStatement(); stmtFrom.executeUpdate(sorgu); String sorgu2 = "update Para" + " set Kalan=Kalan+" + para + " where id=" + id; Statement stmt = baglanti.createStatement(); int durum = stmt.executeUpdate(sorgu2); if (durum > 0) { baglanti.commit(); System.out.println("İşlem Tamam"); } else { baglanti.rollback(); System.out.println("İşlem Geri Alındı"); } } catch (SQLException e) { baglanti.rollback(); System.out.println("Geri Alındı"); } } } }
Örneğimizde yaptığımız işlemleri incelediyseniz veri aktarımı yaparken Transaction’a göre otomatik olarak kapattık, commit ve rollback’leri kullanarak istediğimiz zaman sorgumuzu tümüyle gönderdik eğer bir hata olduğunda ise tüm işlemi iptal ederek geri aldık.
No Comment! Be the first one.