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