springboot事務管理詳解

2021-08-16 09:04:58 字數 1006 閱讀 2318

隔離級別

public

enum isolation

read_uncommitted:該隔離級別表示乙個事務可以讀取另乙個事務修改但還沒有提交的資料。該級別不能防止髒讀和不可重複讀,因此很少使用該隔離級別。

read_committed:該隔離級別表示乙個事務只能讀取另乙個事務已經提交的資料。該級別可以防止髒讀,這也是大多數情況下的推薦值。

repeatable_read:該隔離級別表示乙個事務在整個過程中可以多次重複執行某個查詢,並且每次返回的記錄都相同。即使在多次查詢之間有新增的資料滿足該查詢,這些新增的記錄也會被忽略。該級別可以防止髒讀和不可重複讀。

serializable:所有的事務依次逐個執行,這樣事務之間就完全不可能產生干擾,也就是說,該級別可以防止髒讀、不可重複讀以及幻讀。但是這將嚴重影響程式的效能。通常情況下也不會用到該級別。

@transactional(isolation = isolation.default)
傳播行為
public

enum propagation

supports:如果當前存在事務,則加入該事務;如果當前沒有事務,則以非事務的方式繼續執行。

mandatory:如果當前存在事務,則加入該事務;如果當前沒有事務,則丟擲異常。

requires_new:建立乙個新的事務,如果當前存在事務,則把當前事務掛起。

not_supported:以非事務方式執行,如果當前存在事務,則把當前事務掛起。

never:以非事務方式執行,如果當前存在事務,則丟擲異常。

nested:如果當前存在事務,則建立乙個事務作為當前事務的巢狀事務來執行;如果當前沒有事務,則該取值等價於required。

@transactional(propagation = propagation.required)

Springboot 事務管理

新建的spring boot專案中,一般都會引用spring boot starter或者spring boot starter web,而這兩個起步依賴中都已經包含了對於spring boot starter jdbc或spring boot starter data jpa的依賴。當我們使用了這...

spring boot 的事務管理

方法一 註解的事物管理 在進行資料庫操作的時候就會遇到事務管理,插入的時候要加 transactional註解進行事務的回滾。兩個插入語句如果其中乙個執行失敗,則兩條插入語句都不能執行。方法二 spring配置檔案的事務管理,如上面 所示 1宣告式事務管理 1 配置事物管理器 2 配置註解驅動 3 ...

springboot 事務管理例項

transactional spring 事務註解 1.簡單開啟事務管理 enabletransactionmanagement 啟註解事務管理,等同於xml配置方式的2.事務註解詳解 預設遇到throw new runtimeexception 會回滾 需要捕獲的throw new excepti...