Mehmet Ethem SULAN :: JSP(Java Server Pages) :: Transaction Nedir ve JSP ile PostgreSQL Veritabanında Kullanımı

Transaction(Veritabaninda Işlem-hareket):Default olarak değişikler kaydedilir.Bunu otomatik kayıt işlemini durdurup değişikleri gerçekleştirdikten sonra eğer herhangi bir hata almıyorsak bu değişiklerin veritabanına kayedilmesine transection denir.Hata alıyorsak tüm değişikleri geri alır.Örneğin bankamatikten 10 ytl para çekmek için tuşa bastık.Para bize transfer edilmesi sırasında(belli işlemler gerçekleşiyor sonra parayı bize verir) arızalandı.Veritabanı rollback özelliğiyle bu işlem geri alınır.Yanı tam para bizim elimize geçmeden yapılan tüm işlemleri geri alabilme özelliğine transection denir.Eğer netbeanse driver eklemeyi veya baglanti oluşturmayı bilmiyorsanız :http://www.ethemsulan.com/2010/01/java-ile-postgresql-veritabanna.html , http://www.ethemsulan.com/2010/01/postgresql-veritaban-nasl-kurulurhow-to.html bakabilirsiniz.

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.sql.DriverManager, java.sql.Statement" %>
<%@page import="java.sql.Connection, java.sql.SQLException" %>
JSP Page

        <%!
        Connection baglanti=null;
        Statement uyg=null;
        boolean oto;
        %>
        <%
baglanti=DriverManager.getConnection("jdbc:postgresql:" +
  "//localhost:5432/postgres", "postgres", "ethemsulan");
        uyg=baglanti.createStatement();
        %>
        <%
        try{
        oto=baglanti.getAutoCommit();
//otomatik işlemlerini gerçekleştirmeyi iptal ettik
        baglanti.setAutoCommit(false);
uyg.execute("CREATE TABLE kitap (isbn" +
" varchar DEFAULT NULL NOT NULL,ad varchar DEFAULT NULL," +
" yazar varchar DEFAULT NULL,fiyat int2 DEFAULT NULL," +
"CONSTRAINT kitap_pkey PRIMARY KEY (isbn))");
uyg.executeUpdate("insert into kitap(isbn,ad,yazar,fiyat)" +
" values('978-9944-711-30-2','Extreme Programming','Ozcan ACAR',29)");
//hata yoksa işlmeleri gerçekleştir
    baglanti.commit();
 out.println("Kayit basariyla gerceklesti");
        }catch(SQLException e){
//hata varsa tüm işlemi gerial
        baglanti.rollback();
out.println("SQL hatasi.Daha once olusturulmus olabilir kitap tablosu");
        }finally{
//bağlantıyı kapat ve default değere dön
        uyg.close();
        baglanti.close();
        baglanti.setAutoCommit(oto);
        }
        %>
    

Orj kod:http://www.ethemsulan.pastebin.com/f5ebc0c30

Write a Comment

Let me know what you think?