c3p0多数据源配置

为了sql的执行效率,也许很多人都会放弃使用hibernate,从而选择c3p0。最近项目中就遇到这种情况,而且还得用到多数据源,找了很多资料,最终也没找到,最后通过实践,终于理顺。为了大家跟我一样也走弯路,故将我的实现方式分享在这里。

 首先,我选择通过c3p0-config.xml配置的方式来实现多数据源的配置,对多数据配置主要注意default-config和named-config之间的区别,刚开始看到default还以为,我name里面没定义的配置会从default中继承,其实不然,default-config和named-config是完全独立的两套数据源配置。他们之间的唯一关系便是new ComboPooledDataSource(dbSource)时,找不到name为dbSource的named-config的数据源配置时,就会自动的去尝试链接default-config的数据源配置。

数据源中的具体配置,和各property的含义各处都比较好找,这里就不在赘述。

  DBConnection类    

 public DBConnection(String dbSource){
        ds = new ComboPooledDataSource(dbSource);
    }


    public final synchronized Connection getConnection() throws SQLException {
        try {             
            Connection con = ds.getConnection();

           //设置连接的DatabaseMetaData对象信息
            setMetaData(con);
            return con;                                         
        } catch (SQLException e) {                                                
            e.printStackTrace();
        }                                                                         
        return null;
    }


DBConnectionManager类

      private static Map<String,DBConnection> dbConnection = new HashMap<String, DBConnection>();

     private static DBConnection getDBConnection(String dbSource){
        DBConnection dbConn = dbConnection.get(dbSource);
        if(dbConn==null){
            dbConn = new DBConnection(dbSource);
            dbConnection.put(dbSource, dbConn);
        }
        return dbConn;
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值