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后,不能連續(xù)調(diào)用兩個方法,因為前一個方法
          已經(jīng)把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連續(xù)調(diào)用了兩個方法getNextMenusave,如果不把

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

                     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)  編輯  收藏


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


          網(wǎng)站導航:
           

          My Links

          News

          留言簿(18)

          隨筆檔案

          相冊

          搜索

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 石景山区| 弥勒县| 加查县| 唐山市| 洛宁县| 乾安县| 交城县| 漳州市| 武胜县| 靖远县| 麻城市| 南靖县| 和平县| 西昌市| 乌恰县| 武安市| 永仁县| 南木林县| 晴隆县| 陵水| 宜兰县| 历史| 榆林市| 合水县| 乐山市| 邵武市| 昌平区| 光山县| 泰和县| 西乡县| 松原市| 阿克苏市| 平武县| 林甸县| 丰宁| 晋江市| 泗水县| 汉寿县| 邵阳县| 楚雄市| 琼结县|