Spring事務的一些特性


事務的四大特征

1.原子性:一個事務中所有對數據庫的操作是一個不可分割的操作序列,要么全做要么全不做

2.一致性:數據不會因為事務的執行而遭到破壞

3.隔離性:一個事物的執行,不受其他事務的干擾,即並發執行的事物之間互不干擾

4.持久性:一個事物一旦提交,它對數據庫的改變就是永久的

 

五個隔離級別

1.default:默認的事務隔離級別,跟具體的數據有關,mysql默認的事務隔離級別是repeatable_read

2.read_uncommitted: 讀未提交,一個事務可以感知或者操作另外一個未提交的事務,可能會出現臟讀、不可重復讀、幻讀

3.read_committed:讀已提交,一個事務只能感知或者操作另一個已經提交的事務,可能會出現不可重復讀、幻讀

4.repeatable_read:可重復讀,能夠避免臟讀,不可重復讀,不能避免幻讀

4.serializable:串行化,隔離級別最高,消耗資源最低,代價最高,能夠防止臟讀, 不可重復讀,幻讀。

 

七個傳播特性

1、Propagation.REQUIRED

調用方已經存在事務,則加入到同一個事務中運行,否則,自啟一個事務    

2、Propagation.REQUIRES_NEW

無論何時自身都會開啟新事務

3、Propagation.SUPPORTS

調用方存在事務,則加入到同一個事務中運行,若不存在事務,則以非事務的方式運行

4、Propagation.NOT_SUPPORTED

調用方存在事務,則會被掛起,直到被調用方運行完畢后,事務恢復。

5、Propagation.MANDATORY

調用方存在事務,則加入到同一個事務中運行,若不存在,則拋出異常

6、Propagation.NEVER

調用方存在事務,則拋出異常

7、Propagation.NESTED

若調用方存在事務,則運行一個嵌套事務,若調用方不存在事務,則以Propagation.REQUIRED的方式運行,即開啟一個新的事務

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM