Spring事務概述

2021-09-02 05:30:14 字數 1326 閱讀 3464

#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事務有兩種方式 程式設計式事務管理 宣告式事務管理 ...