afunms

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

          new framework(2)--why put Statement inside dao method

          原來Statement stmt = conn.createStatement();都是在放在BaseDao中,
          子類dao的方法中就可以直接用這個stmt,而且方法最后都會用finally
          來close這個stmt以及rs。

          這個做不好,因為new一個dao后,不能連續調用兩個方法,因為前一個方法
          已經把stmt關閉掉了。

          因此新架構中,在每個方法中都加入Statement stmt = conn.createStatement();
          這樣就不會有上述問題了,但以增加代碼量為代價。
             例子:

              public void addSub(MenuDto dto)
              
          {
                  Connection conn 
          = getConnection();
                  
          try
                  
          {            
                      MenuDao mDao 
          = new MenuDao(conn);
                      MenuRoleDao mrDao 
          = new MenuRoleDao(conn);
                      MenuDto menu 
          = mDao.getNextMenu(dto.getId().substring(0,2));
                      
                      dto.setId(menu.getId());
                      dto.setSort(menu.getSort());
                      
                      mDao.save(dto);
                      mrDao.saveMenu(menu.getId());
                  }

                  
          catch(Exception e)
                  
          {     
                      ConnectionManager.rollback(conn);
                      SysLogger.error(
          "MenuService.addSub()",e);            
                  }
                  
              }

          MenuDao連續調用了兩個方法getNextMenusave,如果不把

          Statement stmt = conn.createStatement()置于方法內,那么我們要這樣寫:

                     MenuDao mDao = new MenuDao(conn);

                     MenuDto menu = mDao.getNextMenu(dto.getId().substring(0,2));          

          MenuDao mDao2 = new MenuDao(conn);

                     mDao2.save(dto);

          new兩次,不是不可以,但讓人感覺很不爽。

          posted on 2007-05-02 13:24 afunms 閱讀(121) 評論(0)  編輯  收藏


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


          網站導航:
           

          My Links

          News

          留言簿(18)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 九龙坡区| 灌南县| 佛教| 六盘水市| 新巴尔虎左旗| 荥阳市| 汝南县| 额济纳旗| 郎溪县| 徐水县| 安图县| 宜都市| 云林县| 通辽市| 平度市| 江门市| 韶山市| 荥阳市| 青川县| 隆回县| 湖口县| 沂水县| 巴东县| 马尔康县| 潼南县| 邳州市| 隆化县| 伊吾县| 崇阳县| 济阳县| 延庆县| 忻城县| 兴和县| 甘孜县| 永城市| 旬邑县| 阿拉善右旗| 江陵县| 仪陇县| 长春市| 郯城县|