事務的特性:ACID數據庫
Atomic:原子性事務
Consistency:一致性it
Isolation:隔離性io
Durability:持久性數據
-------------------------------------------------------查詢
幾個相關概念:異常
髒讀:一個事務讀到另外一個事務未提交的數據。底層
幻讀:一個事務兩次讀取的數據個數不一樣(另外一個事務添加了新的數據)。ab
不可重複讀:一個事務兩次讀取的數據內容不一樣(另外一個事務修改了數據)。
--------------------------------------------------------
事務的隔離級別:
1. DEFAULT:默認隔離級別,使用底層數據庫的默認隔離級別
2.READ_UNCOMMITTED:讀未提交,讀到另外事務未提交的數據,若是別的事務出現回滾,則此事務會讀到無效的數據,它會致使髒讀、不可重複讀、幻讀。
3.READ_COMMITTED:讀已提交,能夠避免髒讀,可是沒法避免不可重複讀和幻讀。
4.REPEATABLE_READ:可重複讀,此級別禁止一個事務去讀一個包含未提交的修改的行,而且禁止一個事務讀一行,另外一個事務修改此行。能夠避免髒讀和不可重複讀,可是不可避免幻讀。
5.SERIALIZABLE:此級別包含REPEATABLE_READ中禁止的內容,而且禁止一個事務讀到知足where條件的數據後,另外一個事務添加的數據知足第一個事務的查詢條件。因此此級別能夠避免髒讀、幻讀和不可重複讀。
-------------------------------------------------------
事務的傳播行爲:
1.REQUIRED:支持當前事務,若是當前不存在事務則新建事務。
2.SUPPORTS:支持當前事務,若是當前不存在事務則以無事務的方式執行。
3.MANDATORY:支持當前事務,若是當前不存在事務則拋出異常。
4.REQUIRES_NEW:建立一個新的事務,若是當前存在事務則掛起當前事務。
5.NOT_SUPPORTED:以非事務的方式執行,若是當前存在事務則掛起當前事務。
6.NEVER:以非事務的方式執行,若是當前存在事務則拋出異常。
7.NESTED:若是當前存在事務則在一個嵌套的事務中執行。