2
EXAMPLE OF TRANSACTION package com.javasree.jdbc; import java.sql.*; import com.javasree.util.*; class TxDemo { public static void main(String as[]) { Account acc=new Account(); acc.transfer(99,88,5000); } } class Account { int bal; int dabal,sabal,danbal,sanbal; public void transfer(int sa,int da,int amt) { Connection con=null; PreparedStatement ps1=null; PreparedStatement ps2=null; try { con=DBUtil.getOracleConnection(); //start transaction con.setAutoCommit(false); //op 1 select ps1=con.prepareStatement("select bal from account where accno=?"); ps1.setInt(1,da); ResultSet rs1=ps1.executeQuery(); if(rs1.next()) { dabal=rs1.getInt(1); } else { //op 3 select ps1.setInt(1,sa); rs1=ps1.executeQuery(); if(rs1.next()) { sabal=rs1.getInt(1); } else { throw new Exception(); } if(sabal>=amt) { sanbal=sabal-amt; } else { throw new Exception(); } //op4 update ps2.setInt(1,sanbal); ps2.setInt(2,sa); ps2.executeUpdate(); con.commit(); } catch(Exception e) { try { con.rollback(); } catch(Exception e1){ } System.out.println(e); } finally { DBUtil.cleanup(con,ps1); } } } Transaction Acct_Transact ion Acct_Transact ion

04_p1

  • Upload
    phani

  • View
    218

  • Download
    0

Embed Size (px)

DESCRIPTION

pl

Citation preview

EXAMPLE OFTRANSACTION package com.javasree.jdbc;import java.sql.*;import com.javasree.util.*;class TxDemo{public static void main(String as[!{"ccount acc#ne$ "ccount(!;acc.trans%er(&&'((')***!;++class "ccount{int bal;int dabal'sabal'danbal'sanbal;

public void trans%er(int sa'int da'int amt!{,onnection con#null;-reparedStatement ps.#null;-reparedStatement ps/#null;tr0{ con#D12til.get3racle,onnection(!; 44start transaction con.set"uto,ommit(%alse!;44op . select ps.#con.prepareStatement(5select bal %rom account $6ere accno#75!; ps..set8nt(.'da!; 9esultSet rs.#ps..execute:uer0(!; i%(rs..next(!! {dabal#rs..get8nt(.!; + else { t6ro$ ne$ ;xception(!; + danbal#dabal