JavaWeb Spring 事務——Transation

(本文章爲編者在學習中收集總結的筆記,僅供學習,如有侵權,請聯繫我)

 

事務——Transation


事務是什麼?

事務指邏輯上的一組操作,這組操作要麼全部成功,要麼全部失敗.

事物的特性:

1.原子性Atomic:事務是一個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生.

2.一致性Consistent:事務處理前後數據的完整性必須保持一致.

3.隔離性Isolated:多個用戶併發訪問數據庫時,一個用戶的事務不能被其他用戶的事務所幹擾,多個併發事務之間數據要相互隔離.

4.持久性Durable:一個事務一旦被提交,它對數據庫中數據的改變就是永久性的,即使數據庫發生故障也不應該對其有任何影響.

Spring事務管理接口:

PlatformTransactionManager:事務管理器

TransactionDefinition:事務定義信息(事務隔離級別、傳播行爲)

TransactionStatus:事務具體運行狀態



(1)Mysql 默認採用的 REPEATABLE_READ隔離級別

(2)Oracle 默認採用的 READ_COMMITTED隔離級別

 


如果不考慮隔離性,會引發如下的安全問題:

 

1.髒讀。 一個事務讀取了另一個事務改寫但還未提交的數據,如果這些數據被回滾,則讀到的數據是無效的。

2.不可重複讀。 在同一個事務中,多次讀取同一數據返回的結果有所不同。

3.幻讀。 一個事務讀取了幾行記錄後,另一個事務插入一些記錄,幻讀就發生了。再後來的查詢中,第一個事務就會發現有些原來沒有的記錄。

 



 




 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章