spring宣告式事務(一)

2021-08-26 03:50:29 字數 958 閱讀 2293

spring 宣告式事務讓我們從複雜的事務處理中得到解脫。使得我們再也無需要去處理獲得連線、關閉連線、事務提交和回滾等這些操作。再也無需要我們在與事務相關的方法中處理大量的 try … catch … finally **。 我們在使用 spring 宣告式事務時,有乙個非常重要的概念就是事務屬性。事務屬性通常由事務的傳播行為,事務的隔離級別,事務的超時值和事務唯讀標誌組成。我們在進行事務劃分時,需要進行事務定義,也就是配置事務的屬性。

spring 在 transactiondefinition 介面中定義這些屬性 , 以供 platfromtransactionmanager 使用 , platfromtransactionmanager 是 spring 事務管理的核心介面。

l gettimeout() 方法,它返回事務必須在多少秒內完成。

l isreadonly() , 事務是否唯讀,事務管理器能夠根據這個返回值進行優化,確保事務是唯讀的。

l getisolationlevel() 方法返回事務的隔離級別,事務管理器根據它來控制另外乙個事務可以看到本事務內的哪些資料。

在 transactiondefinition 介面中定義了五個不同的事務隔離級別:

l isolation_default 這是乙個 platfromtransactionmanager 預設的隔離級別,使用資料庫預設的事務隔離級別 . 另外四個與 jdbc 的隔離級別相物件

l isolation_read_uncommitted 這是事務最低的隔離級別,它充許別外乙個事務可以看到這個事務未提交的資料。這種隔離級別會產生髒讀,不可重複讀和幻像讀。 例如 : mary 的原工資為 1000, 財務人員將 mary 的工資改為了 8000 ,但未提交事務 與此同時, mary 正在讀取自己的工資 mary 發現自己的工資變為了 8000 ,歡天喜地! 而財務發現操作有誤,而回滾了事務 ,mary 的工資又變為了 1000. 像這樣 ,mary 記取的工資數 8000 是乙個髒資料。

Spring宣告式事務

net.sf.hibernate.dialect.oracle9dialect false true net.sf.hibernate.transaction.jdbctransactionfactory 1025 用heibernate來管理事務 當用spring和heibernate一起完成da...

spring宣告式事務

1.什麼是事務 事務是程式中一系列嚴密的操作,所有操作執行必須成功完成,否則在每個操作所做的更改將會被撤銷,這也是事務的原子性 要麼成功,要麼失敗 2.事務的特性 事務特性分為四個 原子性 atomicity 一致性 consistency 隔離性 isolation 持續性 durability ...

Spring 宣告式事務

propagation 事務傳播機制有如下幾種 required 預設值,表示如果存在乙個事務,則支援當前事務 如果沒有事務,則開啟乙個新事務。requires new 表示總是開啟乙個新的事務,如果乙個事務已經存在,則將這個存在的事務掛起,開啟新事務執行該方法。mandatory 表示如果存在乙個...