1. 程式人生 > >小白的進階之路9

小白的進階之路9

bubuko 連接池 業務 JDBC模板 對象 ans 今天開始 事務管理 ring

---恢復內容開始---

今天開始學習spring的事物管理

先寫一個轉賬的例子:

動手之前,先把邏輯搞清楚:

持久層:

    AccountDao(){ ------》接口

      public void in(String in,double money);

      public void out(String out,double money);

}

    AccountDaoImpl{-------》實現類,配置文件需要註入

    private serviceDao sd;------->配置文件註入時,采用ref

    void in(){}

    void out(){}

}

技術分享圖片

業務層:

      serviceDao(){-----》接口

      public void pay(String in,String out,double money);

}

      ServiceDaoImpl(){----》實現類

        private JdbcTemplate jdbcTemplate;-------》這是引用對象,需要用ref註入(這個註入之前一定要記得註入數據庫連接。然後此對象引入ref DataSource。)

        

       public void in(String in,double money);//\這兩個是重寫方法。

      public void out(String out,double money);

}

技術分享圖片

業務層依賴持久層。

jdbc是java數據庫連接,其過程是:

connection(存取事務)-------》c3p0連接池(存取連接,需要註入數據庫)------》plamtransactionmanager平臺事務管理器(管理事務,需要註入連接池)

事物的傳播特性

技術分享圖片

技術分享圖片

以上算上復習一下數據庫的知識,話題回到我們之前做的轉賬小例子。

我們都知道,數據庫的一大特性就是事務,那麽?何為事務?

就是要麽一起成功,要麽一起失敗。就上面的例子而言,在沒有任何保證的情況下,如果遇到異常,比如

技術分享圖片

就會出現一方加錢,一方不減錢的情況,所以說,此時需要一個事務平臺管理器。所以xml配置的正確寫法是

第一步:建立數據庫連接

技術分享圖片

第二步:配置jdbc模板,模板中需要註入數據庫。

技術分享圖片

第三步;:建立平臺事務管理器

技術分享圖片

第四步:配置通知和切面。

技術分享圖片

OK!!!大功告成。。。。

這時,遇到異常時,不會出現錯誤的轉賬情況。

下面開始用註解的方式完成事務,不需要配置通知和切面,改成如下配置,然後在需要加事務的service層的類或方法上,加上@transactional 註解7

技術分享圖片

---恢復內容結束---

小白的進階之路9