Springboot使用事務不生效

2021-10-05 10:47:37 字數 638 閱讀 7399

今天想要寫乙個批量插入使用者的demo,既然是批量插入,必然會有一些預料不到的事情,所以需要使用事務來確保資料庫資料安全,一旦有一條資料插入失敗則所有的資料都不能被成功插入。

1.錯誤使用:

//在service層

@transactional

public map batchadduser(list> datamaplist)

catch(exception e)}..

....

}

最後發現事務沒有起作用,除了錯誤的資料都插入成功了。最後發現在service層中不能使用try catch捕獲異常,@transactional在丟擲異常時進行回滾,但是try catch已經把異常捕獲了,@transactional沒辦法獲取異常,也不知道在哪發生的異常,所以失效了。對**進行修改,如下:

2. 正確使用

//controller層

try catch (exception e)

//service

@transactional

public map batchadduser(list> datamaplist)

....

..}

SpringBoot使用事務

事務是很多專案中需要注意的東西,有些場景如果沒有加事務控制就會導致一些髒資料進入資料庫,本文簡單介紹springboot怎樣使用事務。本文使用的是之前整合jpa的文章,具體可以參考 傳送門。無論是配置還是pom檔案等等,沒有任何改變,改變的是測試的controller上面的兩個方法,其中乙個方法使用...

SpringBoot事務不生效

一。1.mysql表必須支援事務 引擎為innodb 2.springboot啟動事務 enabletransactionmanagement 3.方法上加註解 transactional 預設只對runtimeexception起作用,可修改 4.方法必須為public修飾 5.同類中事務的方法不...

Ibatis使用事務

一 事務概念 事務是一種機制 是一種操作序列,它包含了一組資料庫操作命令,這組命令要麼全部執行,要麼全部不執行。因此事務是乙個不可分割的工作邏輯單元。在資料庫系統上執行併發操作時事務是作為最小的控制單元來使用的。這特別適用於多使用者同時操作的資料通訊系統。例如 訂票 銀行 保險公司以及 交易系統等。...