afunms

          My Software,My Dream—Forge a more perfect NMS product.

          new framework(1)--why put Connection outside dao

              原來我們都是在new dao時,同時獲得一個Connection  
              DaoInterface dao = new XxxxDao();

              為什么新架構(gòu)把Connection放在dao之外呢?為了實(shí)現(xiàn)事務(wù)。
              當(dāng)一個事務(wù)需要調(diào)用兩個dao中兩個(以上)方向時,如果出錯,
          只有同一個Connection才能實(shí)現(xiàn)rollback。
              DaoInterface dao = new XxxxDao(connection);

              /**
               * 這是兩個dao實(shí)現(xiàn)一個事處的最好例子
               
          */

              
          public void addTop(MenuDto dto)
              
          {
                  Connection conn 
          = getConnection();
                  
          try
                  
          {            
                      MenuDao mDao 
          = new MenuDao(conn);
                      MenuRoleDao mrDao 
          = new MenuRoleDao(conn);
                      MenuDto menu 
          = mDao.getNextMenu();
                      menu.setTitle(dto.getTitle());
                      mDao.save(menu);
                      mrDao.saveMenu(menu.getId());
                  }

                  
          catch(Exception e)
                  
          {     
                      ConnectionManager.rollback(conn);
                      SysLogger.error(
          "MenuService.addTop()",e);            
                  }
                  
              }
              當(dāng)然,我們也可以把所有的SQL寫在個dao中,同樣能實(shí)現(xiàn)rollback,
          但這樣做違背了dao操作的“原子性”。

          posted on 2007-05-01 13:10 afunms 閱讀(137) 評論(0)  編輯  收藏


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


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

          My Links

          News

          留言簿(18)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 满城县| 黄梅县| 台州市| 颍上县| 新晃| 宜昌市| 横山县| 赤城县| 太和县| 龙山县| 合阳县| 泊头市| 唐海县| 镇巴县| 淳化县| 阿拉尔市| 二连浩特市| 广东省| 淮南市| 会昌县| 霍林郭勒市| 嫩江县| 孝义市| 明水县| 金川县| 莱西市| 屏东市| 长泰县| 瑞丽市| 资溪县| 昂仁县| 宝清县| 曲周县| 苍南县| 玉林市| 南京市| 石狮市| 长宁县| 甘肃省| 攀枝花市| 阿图什市|