【问题标题】:How to create DataSource with Apache DBCP 1.4?如何使用 Apache DBCP 1.4 创建数据源?
【发布时间】:2011-11-11 15:51:47
【问题描述】:

我正在尝试这个:

final PoolableConnectionFactory factory = new PoolableConnectionFactory(
  new DriverManagerConnectionFactory("jdbc:hsqldb:mem:testdb", "sa", ""),
  new GenericObjectPool(null),
  null,
  "SELECT 1 from INFORMATION_SCHEMA.SYSTEM_USERS",
  true,
  false,
  Connection.TRANSACTION_NONE
);
DataSource ds = new PoolingDataSource(factory.getPool());
ds.getConnection();

无济于事,抛出异常:

java.util.NoSuchElementException: Could not create a validated object, cause: Invalid argument in JDBC call
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1191)
    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)

怎么了?

【问题讨论】:

    标签: java jdbc apache-commons-dbcp


    【解决方案1】:

    尝试像这样设置您的 PoolableConnectionFactory

    PoolableConnectionFactory factory = new PoolableConnectionFactory(
      new DriverManagerConnectionFactory("jdbc:hsqldb:mem:testdb", "sa", ""), 
      new GenericObjectPool(null), 
      null, null, false, true);
    

    并检查它是否以这种方式工作。然后检查事务相关的额外参数在DBCP版本中是否有效。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-16
    • 2017-11-15
    • 2012-11-04
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多