spring 事務的5大隔離級別,7大傳播行為

2022-07-02 01:48:09 字數 1186 閱讀 7565

isolation_read_uncommitted:讀未提交

isolation_read_committed:讀已提交

isolation_repeatable_read:可重複讀

isolation_serializable:序列化

isolation_default:預設的隔離級別(不解釋)

髒讀:a事務讀取b事務尚未提交的更改資料,並在這個資料的基礎上進行操作,這時候如果事務b回滾,那麼a事務讀到的資料是不被承認的

幻讀:a事務讀取b事務提交的新增資料,會引發幻讀問題。幻讀一般發生在計算統計資料的事務中,例如銀行系統在同乙個事務中兩次統計存款賬戶的總金額,在兩次統計中,剛好新增了乙個存款賬戶,存入了100,這                     時候兩次統計的總金額不一致。

不可重複讀:不可重複讀是指a事務讀取了b事務已經提交的更改資料。假如a在取款事務的過程中,b往該賬戶轉賬100,a兩次讀取的餘額發生不一致。

以上者三中情況如果和錢打上交易的話,那麼就十分的恐怖了,可以幻想一下。

required:表示當前事務必須在乙個有事務的上下文中執行,如果客戶端有事務在執行,那麼被呼叫端將在該事務中執行,否在重新開啟乙個事務(如果被呼叫端發生異常,那麼,都將事務回滾。)

required_new:標識當前方法必須執行在它自己的事務中,乙個新的事務啟動,而且如果有乙個現有的事務在執行的話,則這個事務將在執行期被掛起直到這個事務被提交或者回滾才執行

supports:表示當前方法不必須需要乙個具有事物的額上下文,但是如果有的話,它也可以在這個事務中執行

not_supports:表示當前方法不應該在乙個事務中執行,如果有的話,將被掛起,直到事務提交或者回滾才執行

mandatory:表示當前方法必須在乙個事務中執行,沒有的話將丟擲異常

nested:表示當前方法正有乙個事務在執行中,則該方法應該執行在乙個巢狀事務中,被巢狀的事務應該獨立於被封裝的事務中進行提交或者回滾。如果分裝事務存在,並且外層事務丟擲異常回滾,那麼內層事務必須回       滾,反之層事務不影響外層事務。如果封裝事務不存在,則與required是一樣的

never:表示該方法不應該執行在乙個事務中,如果有,則丟擲異常

四種隔離級別個七大傳播行為看情況使用!!!!!!!!!!!!!  

Spring事務的5種隔離級別

概述 isolation設定事務的隔離級別,事務管理器根據它來控制另外乙個事務可以看到本事務內的哪些資料。定義的5個不同的事務隔離級別 default 預設的隔離級別,使用資料庫預設的事務隔離級別 read committed 保證乙個事務修改的資料提交後才能被另外乙個事務讀取。另外乙個事務不能讀取...

spring事務隔離級別

在spring中定義了5中不同的事務隔離級別 1.isolation default 一般情況下使用這種配置既可 這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別。2.isolation read uncommitted 4 p l.i f k...

Spring 事務隔離級別

資料庫事務的隔離級別有4種,由低到高分為為read uncomitted,read comitted,repeatable read serializable,而且,在事務的併發操作中可能會出現髒讀,不可重複度,虛讀 幻讀 髒讀 read uncomitted 什麼都防不住 乙個事務讀到另外乙個事務...