Loading...

          java .net

          學習Spring的事務管理(二)

          用代碼控制實現事物管理的另一種方式,就是通過使用TransactionTemplate模板類,TransactionTemplate封裝了事務管理的功能,包括異常時的事務回滾,以及操作成功后的事務提交。和JdbcTemplate一樣,它使得我們無需在瑣碎的try/catch/finally代碼中徘徊---也就是為我們省去了部分事務提交、回滾代碼。

          將上面的用戶信息插入方法修改成下面這樣:

          TransactionTemplate類的構造器需要一個TransactionCallback接口類型的參數,而抽象類TransactionCallbackWithoutResult實現了TransactionCallback接口,抽象類TransactionCallbackWithoutResult中有一個TransactionCallbackWithoutResult()方法,該方法以TransactionStatus 為參數。所以就有了下面的用內部類的實現方式。

          public boolean doUpdateUserInfo(UserInfoVO oneUserInfo)

              {

                  //定義兩個sql插入語句

                  String sql = "update userinfo set userPassword=? where userName=?";

                  String sql2 = "update userinfo1 set userPassword=? where userName=?";

           

              TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);

              transactionTemplate.execute(new TransactionCallbackWithoutResult()

                         {

                            public void doInTransactionWithoutResult(TransactionStatus status)

                            {

                               this.jdbcTemplate.update(sql, new Object[]

                                               {oneUserInfo.getUserName(),

                                               oneUserInfo.getUserPassword()});

                                this.jdbcTemplate.update(sql2, new Object[]

                                               {oneUserInfo.getUserName(),

                                               oneUserInfo.getUserPassword()});

                            }

                        });

           

                 return true;

              }

          這種方式,代碼量少,少了try/catch/finally語句,全部被封裝在了TransactionTemplate類里面,以內部類方式實現可能降低了代碼的可讀性。

          posted on 2008-08-26 22:06 閱讀(123) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          公告

          希望有一天

          我能用鼠標雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 丰都县| 鄢陵县| 阳朔县| 东丰县| 新沂市| 绥阳县| 迁安市| 屯昌县| 河间市| 建德市| 潜江市| 仪陇县| 丹凤县| 大荔县| 武邑县| 新昌县| 綦江县| 桃源县| 惠东县| 怀集县| 济宁市| 九江县| 友谊县| 南投市| 襄樊市| 潍坊市| 九龙城区| 石嘴山市| 札达县| 宁远县| 连南| 桐柏县| 昌吉市| 沛县| 灵宝市| 永登县| 秦皇岛市| 汝州市| 洛南县| 祁连县| 尚义县|