事務處理 回滾(轉賬操作)

2022-06-20 11:15:10 字數 1438 閱讀 6348

jdbc事務處理-四大原則

原子性一致性

隔離性永續性

第一步:實現轉賬操作

假設在賬戶中,蓋倫有餘額5000元,趙信有餘額2000元,

蓋倫要向趙信轉賬1000元。

public static void outmoney(connection conn,string name,int account) throws sqlexception

public static void inmoney(connection conn,string name,int account) throws sqlexception

system.out.println("蓋倫正在給趙信轉賬1000元");

//轉賬操作

try catch (sqlexception e) finally catch (sqlexception e)

}

執行:

正常轉賬成功。

假設  public static void inmoney(connection conn,string name,int account)執行時出現意外。

人為構造意外

然後執行程式

檢視資料庫的資料

蓋倫少了1000元,趙信餘額沒有變!

這樣,趙信就坑了!!!

【改進】

所需要的函式

con.setautocommit(false); // 取消自動提交

con.rollback(); // 回滾

con.commit(); // 提交事務

connection conn=null;

try catch (classnotfoundexception e) catch (sqlexception e) catch (sqlexception e1)

e.printstacktrace();

}finally catch (sqlexception e)

}

事務處理 多步操作回滾

class program cstomenlistment.rollbacking new customenlistment.rollbackingeventhandler transaction.current.enlistvolatile cstomenlistment,enlistmentop...

php利用事務處理轉賬問題

mysqli new mysqli localhost root 064319 php mysqli set charset utf8 if mysqli connect errno mysqli autocommit false 自動提交模式設為false flag true 事務是否成功執行的標...

PHP操作MySQL事務處理

php操作mysql事務處理 用begin,rollback,commit來實現 方法二 conn mysqli connect localhost root root test or die 資料連線錯誤 mysqli query set names utf8mb4 使用gbk中文編碼 開始乙個事...