資料庫事務超全乾貨

2021-10-23 18:30:08 字數 4168 閱讀 7901

​​​​​​小夥伴們,在說乾貨之前,為了更通俗易懂,先來點小菜,豈不是更美滋滋嗎~~~嚯嚯

①小明付錢:  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事務的兩大前提:

1、因為轉賬業務相當於轉賬事務,所以事務控制**需要加在service業務層

2、乙個事務中的所有的sql語句,必須使用同乙個connection物件,這樣才能保證正常的事務控制

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 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務...