#1 什麼是事務 :邏輯上的一組操作,組成這組操作的各個單元,要麼全成功,要麼全失敗
#2 事務的特性 : 1.原子性:事務不可分割
2.一致性:事務執行前後資料完整性保持一致
3.隔離性:乙個事務的執行不應該受到其他事務的干擾
4.永續性:一旦事務結束,資料就持久化到資料庫
#3 如果不考慮隔離性引發安全性問題
讀問題ⅰ. 髒讀 :乙個事務讀到另乙個事務未提交的資料
ⅱ. 不可重複讀 :乙個事務讀到另乙個事務已經提交的update的資料,導致乙個事務中多次查詢結果不一致
ⅲ. 虛讀、幻讀 :乙個事務讀到另乙個事務已經提交的insert的資料,導致乙個事務中多次查詢結果不一致。
寫問題丟失更新
解決讀問題
設定事務的隔離級別
ⅰ. read uncommitted :未提交讀,任何讀問題解決不了。
ⅱ. read committed :已提交讀,解決髒讀,但是不可重複讀和虛讀有可能發生。
ⅲ. repeatable read :重複讀,解決髒讀和不可重複讀,但是虛讀有可能發生。(常用級別
ⅳ. serializable :解決所有讀問題。(效能大大降低
#4 spring的事務的傳播行為
什麼是傳播行為(面試問題
乙個業務方法當中,呼叫另乙個業務的方法
spring中提供了七種事務的傳播行為
保證多個操作在同乙個事務中
ⅰ. propagation_required
預設值,如果a中有事務,使用a中的事務,如果a沒有,建立乙個新的事務,將操作包含進來
ⅱ. propagation_supports
支援事務,如果a中有事務,使用a中的事務。如果a沒有事務,不使用事務。
ⅲ. propagation_mandatory
如果a中有事務,使用a中的事務。如果a沒有事務,丟擲異常。
保證多個操作不在同乙個事務中
ⅰ. propagation_requires_new
如果a中有事務,將a的事務掛起(暫停),建立新事務,只包含自身操作。如果a中沒有事務,建立乙個新
事務,包含自身操作。
ⅱ. propagation_not_supported
如果a中有事務,將a的事務掛起。不使用事務管理。
ⅲ. propagation_never
如果a中有事務,報異常。
巢狀式事務
propagation_nested
巢狀事務,如果a中有事務,按照a的事務執行,執行完成後,設定乙個儲存點
執行b中的操作,如果沒有異常,執行通過,如果有異常,可以選擇回滾到最初始位置,也可以回滾到儲存點
Spring事務概述
它是乙個介面,是spring用於管理事務的真正的物件 即spring底層是通過platformtransactionmanager進行事務管理的 用於定義事務的相關的資訊,隔離級別 超時資訊 傳播行為 是否唯讀 用於記錄在事務管理過程中,事務的狀態的物件 spring進行事務管理的時候,首先平台事務...
Spring 事務 事務控制
0 註解 autowire 自動注入 url url b 1 spring專案中事務手動回滾 b transactionaspectsupport.currenttransactionstatus setrollbackonly 或者丟擲異常 transactional rollbackfor pu...
Spring事務(一) Spring事務的使用
事務的經典舉例 某人要在商店使用電子貨幣購買100元的東西,當中至少包括兩個操作 該人賬戶減少100元 商店賬戶增加100元 事務就是要確保以上兩個操作 都能完成 或者 一起取消,否則就會出現100元平白消失或出現的情況。摘自wiki spring事務有兩種方式 程式設計式事務管理 宣告式事務管理 ...