【问题标题】:How to configure DBCP PoolableConnectionFactory?如何配置 DBCP PoolableConnectionFactory?
【发布时间】:2012-01-25 13:19:01
【问题描述】:

这就是我使用 DBCP 1.4 连接工厂创建数据源的方式:

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

工作正常,但我不知道如何配置它,这里列出的参数:http://commons.apache.org/dbcp/configuration.html。比如我需要将testWhileIdle设置为true

【问题讨论】:

    标签: java jdbc apache-commons-dbcp


    【解决方案1】:

    BasicDataSource 有这些属性,你可以切换使用吗?

    BasicDataSource ds = new BasicDataSource();
    ds.setDriverClassName(JDBCDriver);
    ds.setUrl(JDBCUrl);
    ds.setUsername(JDBCUser);
    ds.setPassword(JDBCPassword);
    ds.setInitialSize(initSize);
    ds.setTestOnBorrow(false);
    ds.setTestWhileIdle(true);
    

    ...

    【讨论】:

    【解决方案2】:
        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);
    

    【讨论】:

      猜你喜欢
      • 2011-06-24
      • 2015-01-13
      • 2014-07-25
      • 2012-06-04
      • 2015-01-22
      • 2011-06-26
      • 1970-01-01
      • 2011-06-10
      • 1970-01-01
      相关资源
      最近更新 更多