有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Apache DBCP 1.4创建数据源?

我正在尝试这个:

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)

怎么了


共 (1) 个答案

  1. # 1 楼答案

    尝试这样设置PoolableConnectionFactory

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

    然后检查它是否能这样工作。然后检查与事务相关的额外参数在DBCP版本中是否有效