1、遇到的問題
當(dāng)我們一個方法里面有多個數(shù)據(jù)庫保存操作的時候,中間的數(shù)據(jù)庫操作發(fā)生的錯誤。偽代碼如下:
public method() { Dao1.save(Person1); Dao1.save(Person2); Dao1.save(Person2);//假如這句發(fā)生了錯誤,前面的兩個對象會被保存到數(shù)據(jù)庫中 Dao1.save(Person2); }
期待的情況:發(fā)生錯誤之前的所有數(shù)據(jù)庫保存操作都回滾,即不保存
正常情況:前面的數(shù)據(jù)庫操作會被執(zhí)行,而發(fā)生數(shù)據(jù)庫操作錯誤開始及之后的所有的數(shù)據(jù)保存操作都將失敗。這樣子應(yīng)該都不是我們要的結(jié)果吧。
當(dāng)遇到這種情況,我們就可以使用Spring的事務(wù)解決這個問題。
2、異常的一些基本知識
1) 異常的架構(gòu)