C3P0
在项目开发中,使用c3p0 操作数据库连接池,其中需要在数据库用户下创建c3p0这个测试表
如配置:
DB_TEST_TABLENAME=C3P0
实现数据库驱动连接配置获取:
try{
ComboPooledDataSource pooledDataSource = new ComboPooledDataSource();
pooledDataSource.setDriverClass(DB_DRIVER_CLASS);
pooledDataSource.setJdbcUrl(DB_JDBC_URL);
pooledDataSource.setUser(DB_USER);
pooledDataSource.setPassword(DB_PASSWORD);
pooledDataSource.setMinPoolSize(DB_MIN_POOLSIZE);
pooledDataSource.setMaxPoolSize(DB_MAX_POOLSIZE);
pooledDataSource.setInitialPoolSize(DB_INITIAL_POOLSIZE);
// 连接关闭时默认将所有未提交的操作回滚
pooledDataSource.setAutoCommitOnClose(false);
// 每60秒检查所有连接池中的空闲连接。Default: 0
pooledDataSource.setIdleConnectionTestPeriod(60);
// 最大空闲时间,600秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0
pooledDataSource.setMaxIdleTime(600);
//当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 acquireIncrement
pooledDataSource.setAcquireIncrement(5);
pooledDataSource.setAutomaticTestTable(DB_TEST_TABLENAME);//c3p0
javax.naming.Context ctx=new InitialContext();
ctx.bind(Constants.JDBC_JNDI, pooledDataSource);
实现连接数据库:
public static Connection getConnection() {
Connection conn=null;
try {
Context ctx=new InitialContext();
javax.sql.DataSource ds=(javax.sql.DataSource)ctx.lookup(Constants.JDBC_JNDI);
conn=ds.getConnection();
}catch(Exception e) {
e.printStackTrace();
}
return conn;
}
注意问题:ORA-00942: 表或视图不存在 ---------缺少c3p0的测试表导致
推荐阅读
-
spring 下配置 dbcp,c3p0,proxool 等数据源连接池
-
spring 下配置 dbcp,c3p0,proxool 等数据源连接池
-
数据库连接池c3p0配置_动力节点Java学院整理
-
Java数据库连接池之c3p0简介_动力节点Java学院整理
-
C3P0连接池+MySQL的配置及wait_timeout问题的解决方法
-
C3P0连接池+MySQL的配置及wait_timeout问题的解决方法
-
荐 Java——数据库编程JDBC之数据库连接池技术(C3P0与Druid,提供了Druid的工具类)
-
Java数据库连接池c3p0过程解析
-
荐 JDBC(4)DBCP数据源 | C3P0 数据源
-
C3P0连接池、DBCP连接池