事務管理的基礎介紹
先在這裡介紹簡單的Spring的事務管理的概念和基礎
將在後面詳細介紹如何進行環境的搭建和程式碼的編寫以及相應的配置方法
事務的特性:原子性、一致性、隔離性、永續性
原子性:事務是一個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生
一致性:事務前後資料的完整性必須保持一致
隔離性:多個使用者併發訪問資料庫時,一個使用者的事務不能被其他使用者的事務所幹擾,多個併發事務之間的資料要相互隔離
永續性:一個事務一旦被提交,它對資料庫中的資料改變就是永久性的,即使資料庫發生故障也不應該對其有任何影響
一. 事務管理器PlatformTransactionManager
1. 開啟Spring的API
2. 搜尋Interface PlatformTransactionManager(裡面有具體的實現類)
3. 根據不同的框架使用不同的平臺事務管理器
二. 事務定義資訊TransactionDefinition
1. 開啟Spring的API
2. 搜尋Interface TransactionDefinition
3. ISOLATION(5):隔離級別
(用來解決上述沒有隔離性所引發的問題)
PROPAGATION:傳播行為
有一些方法來獲得一些資訊
隔離級別ISOLATION
沒有隔離性引發的問題:
髒讀(一個事務讀取了另一個事務改寫了但沒有提交的資料,如果這些資料回滾那麼將會無效)
不可重複讀(一個事務裡面讀取了另一個事務已經提交的更新的資料,導致多次查詢的資料不一致)
幻讀(一個事務讀取了幾行,另一個事務插入了資料,之後查詢會出現之前所沒有的資料)
事務隔離級別用於解決上述問題
Default是用於底層資料庫的隔離級別
Mysql :REPEATABLE_READ (第三個)
Oracle :READ_COMMITTED (第二個)
傳播行為PROPAGATION
傳播行為用於解決業務層之間的相互呼叫的問題
第一種(前三個):在同一個事務中
第二種(中間三個):在不同事務中
第三種(最後一個):設定一個儲存點
事務狀態TransactionStatus
可以記錄上述的儲存點的狀態