資料庫回滾問題

2021-10-21 00:19:35 字數 1415 閱讀 4022

今天遇到的小問題

@override

public result importexcel

(multipartfile file)

throws illegalacces***ception, instantiationexception, ioexception, invalidformatexception

else

}catch

(exception e)

}private string addexcel

(list

list)

string[

] split = excel.

getstartpoint()

.split

("-");

if(split.length !=3)

cnarea cnarea = fmspolicydao.

getstartpoint

(split[0]

, split[1]

, split[2]

);if(cnarea == null)

excel.

setstartpoint

(cnarea.

getcnid()

);//新增規則組

fmspolicyteam fmspolicyteam =

this

.addfmspolicyteam

(excel, i)

;//新增規則

this

.addfmspolicy

(excel, fmspolicyteam.

getptmid()

, i)

;return

"儲存成功";}

}}return

"**暫無資料"

;}

問題描述:

//新增規則組

fmspolicyteam fmspolicyteam =

this

.addfmspolicyteam

(excel, i)

;

新增成功

//新增規則

this

.addfmspolicy

(excel, fmspolicyteam.

getptmid()

, i)

;

報錯丟擲異常,最終addfmspolicyteam方法新增的資料未回滾。

未回滾的原因就是在最外層方法importexcel方法體被try catch包裹

因為我這裡資料庫回滾的條件是runtimeexception,而try catch後異常被人為處理,也就是沒有異常了,資料自然不會回滾,

最後將try catch 放到controller中,即解決

資料庫回滾

oracle恢復刪除表或表記錄 一 表的恢復 對誤刪的表,只要沒有使用purge永久刪除選項,那麼從flash back區恢復回來希望是挺大的。一般步驟有 1 從flash back裡查詢被刪除的表 select from recyclebin 2.執行表的恢復 flashback table tb...

資料庫回滾與DDL DML

因為ddl沒有事務性,所以ddl不能回滾。要實現自動回滾。begin,commit,rollback 則sql語句中只能包括dml。這樣,自動化發布就會受限規範格式。故而,一刀切的辦法是,假定所有sql不支援事務,自已定義好rollback的sql指令碼,在出錯時能用 回滾,而不是依賴於資料庫本身的...

多個資料庫操作 同步回滾問題

乙個方法中有n個service方法進行資料庫操作,如果某個發生異常,那麼之前成功的資料庫操作,也要回滾。在該方法上新增註解 transactional註解即可,出現異常能夠自動回滾。但是如果 中進行了tay catch去捕獲異常,那麼要在catch中去手動 回滾。新增 transactionaspe...