JDBC預設的事務機制
阿新 • • 發佈:2021-07-08
JDBC事務機制
jdbc中的事務是預設提交的。
執行前的資料庫資料:
程式碼:
package com.happy.lesson1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.util.ResourceBundle; public class JDBCTest10 { public static void main(String[] args) throws Exception { ResourceBundle bundle = ResourceBundle.getBundle("JDBC"); String driver = bundle.getString("driver"); String url = bundle.getString("url"); String user = bundle.getString("user"); String password = bundle.getString("password"); //1.註冊驅動 Class.forName(driver); //2.獲取連線 Connection conn = DriverManager.getConnection(url,user,password); //3.獲取資料庫操作物件 String sql = "update t_act set balance = ? where actno = ?";//處理sql語句 PreparedStatement ps = conn.prepareStatement(sql); //傳值 //111轉賬10000元給222 ps.setDouble(1,10000); ps.setInt(2,111); //4.1執行sql int count = ps.executeUpdate(); //發生異常 int e = 1/0; //222收到轉賬10000元 ps.setDouble(1,10000); ps.setInt(2,222); //4.2執行sql count += ps.executeUpdate(); //5.處理結果集 System.out.println((count==2)?"轉賬成功":"轉賬失敗"); //6.關閉資源 ps.close(); conn.close(); } }
執行後的資料庫資料:
執行有異常,然而資料庫資料發生了變化,111丟失了10000元,但是222卻沒收到錢。