<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.

    perfect DAO design - related classes

    package afu.framework;

    import java.sql.Connection;
    import java.lang.reflect.Constructor;

    import afu.framework.service.*;
    import afu.framework.action.*;
    import afu.framework.util.SysLogger;
    import afu.framework.config.ModuleConfig;
    import afu.framework.jdbc.BaseDao;

    public class BeanFactory
    {
        
    private BeanFactory()
        
    {        
        }

        
        
    public static BaseService newService(String beanId) 
        
    {
            
    if(beanId==null)
            
    {
                SysLogger.error(
    "beanId can not be null.");
                
    return null;
            }
            
            
    if(!ModuleConfig.getServicesMap().containsKey(beanId))
            
    {
                SysLogger.error(
    "Service-class whose id is " + beanId + " doest not exist.");
                
    return null;
            }
                    
            BaseService bs 
    = null;
            
    try
            
    {
                ClassLoader classLoader 
    = Thread.currentThread().getContextClassLoader();
                
    if (classLoader == null
                    classLoader 
    = BeanFactory.class.getClassLoader();
            
                Class clazz 
    = classLoader.loadClass(ModuleConfig.getServicesMap().get(beanId));
                bs 
    = (BaseService)clazz.newInstance();
            }

            
    catch(Exception e)
            
    {
                SysLogger.error(
    "BeanFacade.newService()",e);
            }

            
    return bs;
        }

            
        @SuppressWarnings(
    "unchecked")
        
    public static BaseAction newAction(String beanId) 
        
    {
            
    if(beanId==null)
            
    {
                SysLogger.error(
    "beanId can not be null.");
                
    return null;
            }

            
    if(!ModuleConfig.getActionsMap().containsKey(beanId))
            
    {
                SysLogger.error(
    "Action-class whose id is " + beanId + " doest not exist.");
                
    return null;
            }

            BaseAction ba 
    = null;
            
    try
            
    {
                ClassLoader classLoader 
    = Thread.currentThread().getContextClassLoader();
                
    if (classLoader == null
                   classLoader 
    = BeanFactory.class.getClassLoader();
            
                Class clazz 
    = classLoader.loadClass(ModuleConfig.getActionsMap().get(beanId));
                ba 
    = (BaseAction)clazz.newInstance();
            }

            
    catch(Exception e)
            
    {
                SysLogger.error(
    "BeanFacade.getAction()",e);
            }

            
    return ba;
        }
      
        
        
    public static BaseDao newDao(String beanId)
        
    {
            
    return newDao(beanId,null);
        }

        
        
    public static BaseDao newDao(String beanId,Connection conn)
        
    {
            
    if(beanId==null || !ModuleConfig.getDaosMap().containsKey(beanId))
                
    return null;

            BaseDao dao 
    = null;
            
    try
            
    {
                Class[] types 
    = new Class[] { java.sql.Connection.class };
                Class clazz 
    = Class.forName(ModuleConfig.getDaosMap().get(beanId));
                Constructor cons 
    = clazz.getConstructor(types);
                Object[] args 
    = new Object[] {conn};
                dao 
    = (BaseDao)cons.newInstance(args);
            }

            
    catch(Exception e)
            
    {
                SysLogger.error(
    "BeanFactory.newDao with a connection",e);
            }

            
    return dao;
        }

    }

    package afu.framework.jdbc;

    import java.util.*;
    import java.sql.*;

    import javax.naming.*;
    import javax.sql.DataSource;

    import afu.framework.util.SysLogger;

    import afu.framework.config.ModuleConfig;


    public class ConnectionManager
    {
       
    private ConnectionManager() 
       
    {       
       }

       
       
    private static Map<String,DataSource> dsMap;   
       
    static
       
    {
           dsMap 
    = new HashMap<String,DataSource>();
           List
    <String> jndis = ModuleConfig.getJndis();
           
    try
           
    {
              Context initCtx 
    = new InitialContext();
              
    if("weblogic".equalsIgnoreCase(ModuleConfig.getContainer()))
              
    {
                  
    for(String jndi:jndis)
                  
    {                
                      DataSource ds 
    = (DataSource)initCtx.lookup(jndi);
                       dsMap.put(jndi,ds);
                  }

              }

              
    else
              
    {
                  
    for(String jndi:jndis)
                  
    {                
                      DataSource ds 
    = (DataSource)initCtx.lookup("java:comp/env/" + jndi);
                       dsMap.put(jndi,ds);
                  }
                  
              }

              initCtx.close();
           }

           
    catch(NamingException e)
           
    {
               SysLogger.error(
    "Can not connect database,may be jndi does not exist",e);
           }

           
    catch(Exception e)
           
    {
               SysLogger.error(
    "Can not connect database",e);
           }

       }

       
       
    public static Connection getConnection()
       
    {
           
    return getConnection(ModuleConfig.getDefaultJndi(),true);
       }

       
       
    public static Connection getConnection(final boolean autoCommit)
       
    {
           
    return getConnection(ModuleConfig.getDefaultJndi(),autoCommit);
       }

       
       
    public static Connection getConnection(final String jndi,final boolean autoCommit)
       
    {
           Connection conn 
    = null;
           
    try
           
    {           
               DataSource ds 
    = dsMap.get(jndi);
               
    if(ds==nullreturn null;
               
               conn 
    = ds.getConnection();           
               conn.setAutoCommit(autoCommit);
           }

           
    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 close(Connection conn)
       
    {
           
    try
           
    {
               
    if(conn!=null && !conn.isClosed())
                  conn.close();
           }

           
    catch(SQLException se)
           
    {
               SysLogger.error(
    "Fail to close() connection",se);         
           }

       }


       
    public static void close(Connection conn,Statement stmt,ResultSet rs)
       
    {
           
    try
           
    {
               
    if(conn!=null && !conn.isClosed())
                  conn.close();
               
    if(stmt!=null)
                  stmt.close();
               
    if(rs!= null)
                  rs.close();           
           }

           
    catch(SQLException se)
           
    {
               SysLogger.error(
    "Fail to close() connection",se);         
           }

       }

       
       
    public static void rollback(Connection conn)
       
    {
           
    try
           
    {
               
    if(!conn.getAutoCommit())             
                  conn.rollback();
           }

           
    catch(SQLException se)
           
    {
               SysLogger.error(
    "Can not do rollback operation.",se);         
           }

       }
       
    }
     

    posted on 2007-05-12 12:37 afunms 閱讀(130) 評論(0)  編輯  收藏


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


    網站導航:
     

    My Links

    News

    留言簿(18)

    隨筆檔案

    相冊

    搜索

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 一区二区三区免费电影| 亚洲沟沟美女亚洲沟沟| 立即播放免费毛片一级| 中文字幕无码成人免费视频| 日韩亚洲Av人人夜夜澡人人爽| 你是我的城池营垒免费观看完整版 | 亚洲国产精久久久久久久| 中文字幕的电影免费网站| 久久精品国产亚洲精品| 一二三区免费视频| 亚洲日韩精品无码专区网址| 99麻豆久久久国产精品免费 | 久久精品毛片免费观看| 亚洲黄色在线播放| 国产精品久久久久久久久免费| 亚洲激情黄色小说| 最近最好的中文字幕2019免费| 亚洲日韩精品国产一区二区三区| 成人免费视频软件网站| 春暖花开亚洲性无区一区二区| 亚洲成?Ⅴ人在线观看无码| 国产视频精品免费视频| 亚洲AV无码成人网站久久精品大 | 91热成人精品国产免费| 亚洲香蕉久久一区二区| 国产免费131美女视频| 一级有奶水毛片免费看| 91久久亚洲国产成人精品性色 | 久久精品无码专区免费东京热| 亚洲an日韩专区在线| 国产成人青青热久免费精品| jizz中国免费| 亚洲成a人片毛片在线| 午夜免费福利影院| 久久精品成人免费国产片小草| 亚洲成人在线电影| 永久免费无码网站在线观看| 中文字幕在线免费看| 亚洲综合伊人制服丝袜美腿| 婷婷综合缴情亚洲狠狠尤物| 无码日韩精品一区二区免费暖暖|