什麼是事務?
事務就是對資料庫的一組邏輯操作,要麼全部執行成功,要麼全部失敗。簡言之就是多條sql語句要麼都執行成功,要麼都不能執行(只有乙個失敗都不行)。
事務管理的目的何在
當然是為了保證資料庫事務的四大特性(acid),原子性、一致性、隔離性和永續性。
原子性:每乙個事務都是不可分割的整體。 一致性:在事務執行成功後,能保證資料的完整性,即能保證不出現資料出現偏差的情況發生 隔離性:不同事務在對資料庫進行併發操作的時候不相互干擾 永續性:一旦事務提交成功後,對資料庫的操作都必須生效。
資料併發讀會產生的問題
1、髒讀——當前事務讀取了其他事務還未提交的資料,可能會出現另乙個事務被回滾,而當前事務讀取的資料不正確。例子:銀行個人賬戶轉賬過程中被回滾造成另一邊讀到了轉賬後的資料
2、不可重複讀——當前事務之前讀取了乙個資料,而在後續過程中又讀取到了另一事務已經提交的的更改資料,這將會導致前後兩次讀到的資料不一致。例子:個人銀行賬戶中,當前事務檢視自己餘額1000元,併發中另一事務取了100,導致自己的餘額突然變成900,前後不一致。
3、幻想讀——當前事務讀取了另一事務的新增加的資料。例子:當前事務統計到了乙個總資料,而另一事務在併發中新增加了資料,導致了剛才讀到的**計失效變成了另乙個總的資料。
spring事務隔離級別
1、serializable:可序列化,避免髒讀、不可重複讀和幻想讀。
2、repeatable read:可重複讀,避免了髒讀和不可重複讀。
3、read committed:可提交讀,避免了髒讀
4、read uncommitted:未提交讀,保證了讀取過程中不會讀取到非法資料。
spring的事務傳播行為:
為了解決業務層方法間相互呼叫的問題,大致分為三類:第一類,將兩個業務層的資料庫操作都放在乙個事務中進行(required);第二類(未完待續)
spring中三種宣告式事務管理配置
基於**類的實現
基於xml配置的實現
基於註解的實現
三種配置方式的總結:
Spring事務管理
spring是ssh中的管理員,負責管理其它框架,協調各個部分的工作。今天一起學習一下spring的事務管理。spring的事務管理分為宣告式跟程式設計式。宣告式就是在spring的配置檔案中進行相關配置 程式設計式就是用註解的方式寫到 裡。下面先說宣告式 spring配置檔案中關於事務配置總是由三...
spring事務管理
一 xml配置事務 二 註解的方式配置事務 bean id txmanaager class org.springframework.orm.hibernate3.hibernatetransactionmanager property name sessionfactory ref session...
spring 事務管理
和資料庫打交道的碼農都知道事務,事務有4大特徵,分別是原子性,一致性,隔離性,永續性。而spring 對事物提供了良好的支援,和api,通過簡單的配置,則可以減低程式設計師重複的操作。1.原子性 原子性指的是乙個事務內的所有操作要麼全部應用到資料庫,要麼取消對資料庫的操作。2.一致性 一致性和原子性...