如何配置DBCP PoolableConnectionFactory?

yeg*_*256 3 java jdbc apache-commons-dbcp

这是我使用DBCP 1.4连接工厂创建DataSource的方法:

PoolableConnectionFactory factory = new PoolableConnectionFactory(
  new DriverManagerConnectionFactory("jdbc:h2:mem:db", "", ""),
  new GenericObjectPool(null),
  null,
  "SELECT 1",
  false,
  true
);
DataSource src = new PoolingDataSource(factory.getPool());
Run Code Online (Sandbox Code Playgroud)

工作正常,但我不知道如何配置它,参数列在这里:http://commons.apache.org/dbcp/configuration.html.例如,我需要设置testWhileIdletrue.

小智 5

    Properties props = new Properties();
    props.put("validationQuery", "SELECT 1 from dual;");
    props.put("testWhileIdle","true");

    final ObjectPool connectionPool = new GenericObjectPool(null);
    final ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectUri, props);
    new PoolableConnectionFactory(connectionFactory, connectionPool, null, null, false, true);
    final PoolingDataSource dataSource = new PoolingDataSource(connectionPool);
Run Code Online (Sandbox Code Playgroud)