<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    afunms

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

    dao scenario 2

    /**
     * Second scenario:transaction is rare
     * we control connection inside service classes.
     */

    /**
     * -----ConnectionManager.class---------
     */

       public static Connection getConnection()
       {
        return getConnection(ModuleConfig.getDefaultJndi());
       }
      
       public static Connection getConnection(final String jndi)
       {
        Connection conn = null;
        try
        {       
         DataSource ds = dsMap.get(jndi);
            if(ds==null) return null;
           
            conn = ds.getConnection();       
            conn.setAutoCommit(true);
        }
        catch(SQLException sqle)
        {
         SysLogger.error("Database fail to get connection 1",sqle);
        }
        catch(Exception sqle)
        {
         SysLogger.error("Database fail to get connection 2",sqle);
        }
        return conn;
       }
         
       public static void rollback(Connection conn)
       {
        try
        {
         if(conn==null || conn.isClosed())
          return;
        
         if(!conn.getAutoCommit())         
               conn.rollback();
        }
        catch(SQLException se)
        {
            SysLogger.error("Can not do rollback operation.",se);        
        }
       }  
    }  

    /**
     * -----ActionServlet.class---------
     */

       private void processHttpRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
       {   
        response.setContentType("text/html;charset=GB2312");  
        request.setCharacterEncoding("GB2312");  
       
        String beanId = extractBeanID(request.getRequestURI());
        String methodName = request.getParameter("method");   
        String targetJsp = null;
       
        if(beanId==null || methodName==null)
        {
         request.setAttribute(EXCEPTION_MESSAGE,"請求URI錯誤.");
         forward(request,response,targetJsp);
         return;
        }   
        BaseAction ba = BeanFactory.newAction(beanId);
        BaseService bs = BeanFactory.newService(beanId);
        if(ba==null || bs == null)
        {
         request.setAttribute(EXCEPTION_MESSAGE,"沒有Bean為" + beanId + "的action或service");
         forward(request,response,targetJsp);
         return;
        }
         
        ActionAnnotation ann = AnnotationExtractor.getAnnotation(ba.getClass(), methodName);
        ba.setRequest(request);
        ba.setService(bs);              
        Method method = SysUtil.lookupMethod(ba.getClass().getMethods(),methodName);   

        Connection conn = null;
        if(ann.isNeedDB())
        {

         conn = ConnectionManager.getConnection();
         bs.setConnection(conn);
         bs.setDao(BeanFactory.newDao(beanId,conn));
        }
        if(method!=null)
        {
            try
            {         
                targetJsp = (String)method.invoke(ba);
            }
            catch(Exception e)
            {
             SysLogger.error("Error:" + bs.getClass().getName() + "." + method.getName(),e);
         targetJsp = null;
            }
           }
        if(ann.isNeedDB())
         ConnectionManager.close(conn);
           forward(request,response,targetJsp);
       } 
         
       /**
        * example:method in service class
        * operating conncetion in service
        */

     /**
      * 這是兩個dao實現一個事處的最好例子
      */
     public void addTop(MenuDto dto) throws Exception
     {
      Connection conn = getConnection();
      try
                    {   
       conn.setAutoCommit(false);
       
       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());
       
       conn.commit();
      }
      catch(Exception e)
      {    
       ConnectionManager.rollback(conn);
                            throw e;        
      }  
     }

    posted on 2007-05-14 14:18 afunms 閱讀(159) 評論(0)  編輯  收藏


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


    網站導航:
     

    My Links

    News

    留言簿(18)

    隨筆檔案

    相冊

    搜索

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 国产精品视频白浆免费视频| 亚洲国产精品ⅴa在线观看| 特色特黄a毛片高清免费观看| 啦啦啦高清视频在线观看免费| 亚洲性色高清完整版在线观看| 久久精品一本到99热免费| 亚洲国产美国国产综合一区二区 | 亚洲国产精品无码久久久不卡| 国产成人无码精品久久久久免费 | 亚洲国产精品自在在线观看 | 你懂得的在线观看免费视频| 日韩精品亚洲aⅴ在线影院| 一级做a爰全过程免费视频毛片 | 四虎影视在线永久免费看黄| 国产亚洲精品美女| 亚洲人成人无码网www国产| 男男黄GAY片免费网站WWW| 亚洲美女高清一区二区三区| 免费一区二区无码视频在线播放 | 成人毛片免费在线观看| 亚洲日韩精品无码专区加勒比☆| 蜜臀91精品国产免费观看| 男男黄GAY片免费网站WWW| 亚洲精品乱码久久久久66| 久久午夜夜伦鲁鲁片免费无码| 亚洲狠狠狠一区二区三区| 四虎永久在线精品免费网址 | 老司机午夜免费视频| 国产精品亚洲美女久久久| 国产三级在线免费| 亚洲黄色免费网址| 日本高清免费不卡视频| 一本岛v免费不卡一二三区| 精品亚洲成AV人在线观看| 最好免费观看韩国+日本 | 亚洲三区在线观看无套内射| 一级毛片免费观看不卡视频| 亚洲午夜无码久久| 亚洲国产精品无码专区影院| 成人毛片18女人毛片免费| xxxxxx日本处大片免费看|