1. 程式人生 > 其它 >JDBC預設的事務機制

JDBC預設的事務機制

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卻沒收到錢。