Spring 事物管理

2022-05-16 14:33:08 字數 2022 閱讀 1667

spring在企業開發中,能和其他框架進行整合,spring的職責在於bean管理和事物操作

spring配置檔案中關於事務配置總是由三個組成部分,分別是datasource、transactionmanager和**機制這三部分,無論哪種配置方式,一般變化的只是**機制這部分。

事務使用acid特性來衡量事務的質量。介紹如下: 

1,原子性 

事務必須是原子的,在事務結束的時候,事務中的所有任務必須全部成功完成,否則全部失敗,事務回滾到事務開始之間的狀態。 

2,一致性 

事務必須保證和資料庫的一致性,即資料庫中的所有資料和現實保持一致。如果事務失敗資料必須返回到事務執行之前的狀態,反之修改資料和現實的同步。 

3,隔離性 

隔離性是事務與事務之間的屏障,每個事務必須與其他事務的執行結果隔離開,直到該事務執行完畢,它保證了事務的訪問的任何資料不會受其他事務執行結果的影響。 

4,永續性 

如果事務成功執行,無論系統發生任何情況,事務的永續性都必須保證事務的執行結果是永久的。 

xml配置的編寫

isolation_default,propagation_required,-stockexception

事物之間的缺陷

1.髒讀取

當乙個事務讀取了另乙個事務尚未提交的更新,就叫髒讀取。在另乙個事務回滾的情況下,當前事務所讀取的另乙個事務的資料就是無效的。

2.不可重複讀取

在乙個事務中執行多次同樣的查詢操作,但每次查詢的結果都不一樣,就叫做不可重複讀取,通常這種情況是由於資料在二次查詢之間被另乙個併發的事務所修改。

3.幻象行

這是對事務危害最小的乙個問候,它類似不可重複讀取,也是乙個事務的更新結果影響到另乙個事務問題。但是它不僅影響另乙個事務查詢結果,而且還會使查詢語句返回一些不同的行錄行。 

這3個問題危害程度依次為:髒讀取最大-->不可重複讀取-->幻影行最小。

spring事務型別詳解

isolation_default,propagation_required,-stockexception

spring中常用事務型別:

propagation_required--支援當前事務,如果當前沒有事務,就新建乙個事務。這是最常見的選擇。

propagation_supports--支援當前事務,如果當前沒有事務,就以非事務方式執行。

propagation_mandatory--支援當前事務,如果當前沒有事務,就丟擲異常。

propagation_requires_new--新建事務,如果當前存在事務,把當前事務掛起。

propagation_not_supported--以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

propagation_never--以非事務方式執行,如果當前存在事務,則丟擲異常。

propagation_nested--如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則進行與propagation_required類似的操作。

2,事務的隔離級別 

為解決事務之間的3個缺陷,必須在事務之間建立隔離關係來保證事務的完整性。 

isolation_default         

使用資料庫預設的隔離級別 

isolation_committed     

允許讀取其他併發事務已經提交的更新(防此髒讀) 

isolation_read_uncommitted 

允許讀取其他併發事務還未提交的更新,會導致事務之                間的3個缺陷發生,這是速度最快的乙個隔離級別,但同                時它的隔離級別也是最低 

isolation_repeatable_read 

除非事務自身修改了資料,否則規定事務多次重複讀取        資料必須相同(防此髒讀,不可重複讀) 

isolation_serializable 

這是最高的隔離級別,它可以防此髒讀,不可重複讀和        幻讀等問題,但因其侵占式的資料記錄完全鎖定,導致 

Spring事物管理

spring 事物的管理是申明式事物,通過在spring的xml檔案中配置3個元件,來管理整個專案的事物.最初事物的概念是在資料庫中提出的,為了保證資料的安全性.事物通俗的說就是原子的操作流程,符合acid,分別為原子性,一致性,隔離性,永久性.原子性是指事物中多張表的資料操作,要嘛全部成功,如其中...

spring事物管理

事務 1.什麼是事務?事務是我們要執行的一系列操作,要麼完全執行,要麼完全不執行。這樣可以確保所有的操作都成功,否者不會跟新資料庫。2.事務有兩種結果 所有的操作執行成功,提交事務。如果有乙個操作執行失敗,將發生回滾,撤銷之前到事務發生開始時執行的操作。3.spring的事務使用 有兩個類datas...

spring 事物管理

在spring配置檔案中配置 ref datasource 配置的是資料來源的id 中運用 新增事務註解 1.使用 propagation 指定事務的傳播行為,即當前的事務方法被另外乙個事務方法呼叫時 如何使用事務,預設取值為 required,即使用呼叫方法的事務 requires new 事務自...