c3p0的使用

使用c3p0我们需要两个jar包,这两个jar包分别是:c3p0-0.9.5.2.jar和mchange-commons-java-0.2.11.jar,如果缺少了第二个jar包的话,那么将会报java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector at com.weixin.util.Db.(Db.java:16) at com.weixin.test.DataSourceTest.testPool(DataSourceTest.java:15) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.N这个错误,下面我们来看下c3p0的使用方法:

package com.weixin.util;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * 创建数据库连接类
 * @author wan
 */
public class Db {

    private static ComboPooledDataSource ds = new ComboPooledDataSource();

    static {
        try {
            ds.setDriverClass(WeixinUtil.prop.getProperty("c3p0.driverClass"));
            ds.setJdbcUrl(WeixinUtil.prop.getProperty("c3p0.jdbcUrl"));
            ds.setUser(WeixinUtil.prop.getProperty("c3p0.user"));
            ds.setPassword(WeixinUtil.prop.getProperty("c3p0.password"));
            ds.setMaxPoolSize(Integer.parseInt(WeixinUtil.prop.getProperty("c3p0.maxPoolSize")));
            ds.setMinPoolSize(Integer.parseInt(WeixinUtil.prop.getProperty("c3p0.minPoolSize")));
            ds.setInitialPoolSize(Integer.parseInt(WeixinUtil.prop.getProperty("c3p0.initialPoolSize")));
            ds.setMaxStatements(Integer.parseInt(WeixinUtil.prop.getProperty("c3p0.maxStatementSize")));
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() {
        try {
            return ds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
}

下面我来逐项的解释:上面一个私有的ComboPooledDataSource是数据源,通俗点说就是数据库连接池由它管理,后面我们获得Connection也是通过它获得的,这个工具类里面有一个静态代块,这个静态代码块的作用是用来设置数据源的一些参数的,例如,ds.setDriverClass(WeixinUtil.prop.getProperty(“c3p0.driverClass”));这一行代码是用来设置数据库连接的驱动的,下面的内容类似,例如设置数据库用户名,设置用户名密码,设置数据库连接池的最大连接数等等,WeixinUtil.prop.getProperty(“c3p0.driverClass”);这里面的代码是我将数据库连接的信息配置到了属性文件里面,下面来看看属性文件:

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/mytest
c3p0.user=root
c3p0.password=root
c3p0.minPoolSize=5
c3p0.maxPoolSize=20
c3p0.acquireIncrement=5
c3p0.initialPoolSize=5
c3p0.maxStatementSize=180
c3p0.maxIdleTime=240

这上面是数据库连接池的属性文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值