小夥伴們,在說乾貨之前,為了更通俗易懂,先來點小菜,豈不是更美滋滋嗎~~~嚯嚯
①小明付錢: update account set money=money-1000 where name=』xiaoming』;
②小紅收錢: update account set money=money+1000 where name=』xiaohong』;
//沒出異常,轉賬成功
return true;}}
accountdao
/**
* 付款人 付款
* @param userout
* @param money
*/public void userout(string userout, double money) throws sqlexception
/** * 收款人 收款
* @param userin
* @param money
*/public void userin(string userin, double money) throws sqlexception
解決:轉賬失敗,所有的操作還原。
轉換成功,所有的操作永久儲存資料庫。
概念:事務指的是邏輯上的一組操作,組成這組操作的各個單元要麼全都成功,要麼全都失敗.mysql有兩種事務操作, 手動事務:
sql語句
描述start transaction;
開啟事務
開啟了一次資料**站功能。
在當前事務中進行的任何資料的增刪改都可以被永久儲存/還原。
commit;
提交事務
把當前事務中操作過的資料,永久儲存。
關閉當前的手動事務
rollback;
回滾事務
還原事務中操作過的資料。
關閉當前的手動事務
例如:
手動事務的注意事項:注:1、commit或rollback之後,若需要再次使用事務,必須再次開啟事務。
2、事務僅針對dml(增刪改)和dql(查)語句。
若遇到其他語句(例如:ddl語句),事務會強制提交並關閉
自動事務無法回滾
,只能提交
優點:提公升程式設計師**測試效率缺陷:一句乙個事務,效率不高,無法自定義事務
自動事務關閉:臨時關閉:
手動開啟事務:start transcation;
本次永久關閉:
set autocommit = 0;
#0:off 1:on
jdbc事務的兩大前提:connection1、因為轉賬業務相當於轉賬事務,所以事務控制**需要加在service業務層
2、乙個事務中的所有的sql語句,必須使用同乙個connection物件,這樣才能保證正常的事務控制
方法名描述
setautocommit(boolean flag)
設定事務是否為自動事務。
引數:true(預設)自動事務fa
lse
手動事務,
開啟一次手動事務
setautocommit(false);
會通知jdbc傳送start transaction;給mysql執行
commit();
提交事務
會通知jdbc傳送commit;給mysql執行
rollback();
回滾事務
會通知jdbc傳送rollback;給mysql執行
修改**:
accountservice:
public boolean account(string userin, string userout, double money) catch (exception e) catch (sqlexception e1)
return false;
} finally catch (sqlexception e)
}//沒出異常,轉賬成功
return true;
}
accountdao:
/*** 付款人 付款
*@param
con
*
@param
userout
*
@param
money
*/
public void
userout(
connection con
,string userout,double
money)throws
sqlexception
/*** 收款人 收款
*@param
con
*
@param
userin
*
@param
money
*/
public void
userin(
connection con
, string userin,double
money)throws
sqlexception
小結:
事務**加在service層看完恭喜你,又知道了一點點!!!同乙個事務下所有的sql語句,用的是同乙個connection物件
你知道的越多,不知道的越多!
~感謝志同道合的你閱讀, 你的支援是我學習的最大動力 ! 加油 ,陌生人一起努力,共勉!!
資料庫事務
事件是訪問並可能更新各種資料項的乙個程式執行單元。事件由事務開始與事務結束之間執行的全體操作組成。為了保證資料完整性,資料庫系統需要維護事務的以下性質 原子性 atomicity 事務中的操作要麼全部成功,要麼全部失敗。一致性 consistency 事務執行前後要保持資料庫的一致性。隔離性 iso...
資料庫 事務
資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元要成...
資料庫事務
這段時間面試,由於基礎不是特別好,遇到一些要筆試的公司。就會表示出來 今天有人問我,資料庫事務 是什麼。我只感覺十分熟悉。但是又說不出所以然。回來找了一下,現在整理記錄 1 定義 資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務...