今天遇到的小問題
@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...