Loading...

          java .net

          學(xué)習(xí)Spring的事務(wù)管理(二)

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

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

          TransactionTemplate類的構(gòu)造器需要一個(gè)TransactionCallback接口類型的參數(shù),而抽象類TransactionCallbackWithoutResult實(shí)現(xiàn)了TransactionCallback接口,抽象類TransactionCallbackWithoutResult中有一個(gè)TransactionCallbackWithoutResult()方法,該方法以TransactionStatus 為參數(shù)。所以就有了下面的用內(nèi)部類的實(shí)現(xiàn)方式。

          public boolean doUpdateUserInfo(UserInfoVO oneUserInfo)

              {

                  //定義兩個(gè)sql插入語(yǔ)句

                  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語(yǔ)句,全部被封裝在了TransactionTemplate類里面,以內(nèi)部類方式實(shí)現(xiàn)可能降低了代碼的可讀性。

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          公告

          希望有一天

          我能用鼠標(biāo)雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導(dǎo)航

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

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網(wǎng)絡(luò)

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 潮安县| 呼伦贝尔市| 聂拉木县| 沧源| 思茅市| 潞城市| 澄城县| 白河县| 南川市| 叙永县| 哈巴河县| 西青区| 邵阳市| 清水县| 兰州市| 共和县| 宁城县| 齐齐哈尔市| 高邮市| 隆尧县| 西乌珠穆沁旗| 金乡县| 修武县| 正镶白旗| 荥阳市| 营口市| 南郑县| 贡嘎县| 东港市| 安顺市| 五台县| 西林县| 忻州市| 徐汇区| 神木县| 渭源县| 古浪县| 巴林右旗| 长丰县| 梅州市| 合作市|