- C3P0(独立链接池使用)
private static ComboPooledDataSource cpDataSource = null;;
private static WebPooledConn instance = null;
private WebPooledConn(){}
static{
try
{
// (1) 初始化链接池设置
cpDataSource = new ComboPooledDataSource();
cpDataSource.setDriverClass(DBClassName);
cpDataSource.setJdbcUrl(DBUrl);
cpDataSource.setUser(DBUser);
cpDataSource.setPassword(DBPassword);
cpDataSource.setInitialPoolSize(3); //初始链接数
cpDataSource.setMinPoolSize(0); //最小链接数
cpDataSource.setAcquireIncrement(5); //当链接池中的链接耗尽的时候c3p0一次同时获取的链接数。Default: 3
cpDataSource.setMaxPoolSize(20); //最大链接数
/**
* (单位:毫秒)当链接池用完时客户端调用getConnection()后等待获取新链接的时间,超时后将抛出
* SQLException,如设为0则无限期等待。单位毫秒。Default: 0
*/
cpDataSource.setCheckoutTimeout(1000*60);
cpDataSource.setMaxIdleTime(60); //(单位:秒) 最大空闲时间,60秒内未使用则链接被丢弃。若为0则永不丢弃。Default: 0
cpDataSource.setIdleConnectionTestPeriod(60); //(单位:秒) 每60秒检查全部链接池中的空闲链接。Default: 0 (0:永远不检查)
cpDataSource.setAcquireRetryAttempts(30); //定义在从数据库获取新链接失败后重复尝试的次数。Default: 30
cpDataSource.setAcquireRetryDelay(1000); //(单位:毫秒) 两次链接中间隔时间,单位毫秒。Default: 1000
cpDataSource.setAutoCommitOnClose(false); //链接关闭时默认将全部未提交的操做回滚。Default: false
/**
* 获取链接失败将会引发全部等待链接池来获取链接的线程抛出异常。可是数据源仍有效
* 保留,并在下次调用getConnection()的时候继续尝试获取链接。若是设为true,那么在尝试
* 获取链接失败后该数据源将申明已断开并永久关闭。Default: false
*/
cpDataSource.setBreakAfterAcquireFailure(false);
}
catch (Exception e)
{
e.printStackTrace();
}
}