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的测试表导致

你可能感兴趣的:(C3P0,配置测试表,C3P0,JAVA,c3p0)