日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

框架:Spring事务的隔离级别

發布時間:2025/3/21 javascript 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 框架:Spring事务的隔离级别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 首先,說說什么事務(Transaction)
事務,就是一組操作數據庫的動作集合。事務是現代數據庫理論中的核心概念之一。
如果一組處理步驟或者全部發生或者一步也不執行,我們稱該組處理步驟為一個事務。
當所有的步驟像一個操作一樣被完整地執行,我們稱該事務被提交。
由于其中的一部分或多步執行失敗,導致沒有步驟被提交,則事務必須回滾到最初的系統狀態。

2. spring七個事務傳播屬性:
1.PROPAGATION_REQUIRED – 支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。

2.PROPAGATION_SUPPORTS – 支持當前事務,如果當前沒有事務,就以非事務方式執行。

3.PROPAGATION_MANDATORY – 支持當前事務,如果當前沒有事務,就拋出異常。

4.PROPAGATION_REQUIRES_NEW – 新建事務,如果當前存在事務,把當前事務掛起。

5.PROPAGATION_NOT_SUPPORTED – 以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

6.PROPAGATION_NEVER – 以非事務方式執行,如果當前存在事務,則拋出異常。

7.PROPAGATION_NESTED – 如果當前存在事務,則在嵌套事務內執行。如果當前沒有事務,則進行與PROPAGATION_REQUIRED類似的操作。

備注:常用的兩個事務傳播屬性是1和4,即PROPAGATION_REQUIRED,PROPAGATION_REQUIRES_NEW

3. 五個隔離級別:
ISOLATION_DEFAULT?
這是一個PlatfromTransactionManager默認的隔離級別,使用數據庫默認的事務隔離級別.

另外四個與JDBC的隔離級別相對應;

ISOLATION_READ_UNCOMMITTED?
這是事務最低的隔離級別,它充許別外一個事務可以看到這個事務未提交的數據。?
這種隔離級別會產生臟讀,不可重復讀和幻像讀。

ISOLATION_READ_COMMITTED?
保證一個事務修改的數據提交后才能被另外一個事務讀取。另外一個事務不能讀取該事務未提交的數據。?
這種事務隔離級別可以避免臟讀出現,但是可能會出現不可重復讀和幻像讀。

ISOLATION_REPEATABLE_READ?
這種事務隔離級別可以防止臟讀,不可重復讀。但是可能出現幻像讀。?
它除了保證一個事務不能讀取另一個事務未提交的數據外,還保證了避免下面的情況產生(不可重復讀)。

ISOLATION_SERIALIZABLE?
這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。?
除了防止臟讀,不可重復讀外,還避免了幻像讀。

關鍵詞:?
1)幻讀:事務1讀取記錄時事務2增加了記錄并提交,事務1再次讀取時可以看到事務2新增的記錄;?
2)不可重復讀取:事務1讀取記錄時,事務2更新了記錄并提交,事務1再次讀取時可以看到事務2修改后的記錄;?
3)臟讀:事務1更新了記錄,但沒有提交,事務2讀取了更新后的行,然后事務T1回滾,現在T2讀取無效。

臟讀:指一個事務讀取了一個未提交事務的數據

不可重復讀:在一個事務內讀取表中的某一行數據,多次讀取結果不同.一個事務讀取到了另一個事務提交后的數據.

虛讀(幻讀):在一個事務內讀取了別的事務插入的數據,導致前后讀取不一致(insert)
?

總結

以上是生活随笔為你收集整理的框架:Spring事务的隔离级别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。