我已经实现了commons dbcp PoolingDataSource
并且它工作得很好——直到我遇到了使用java.sql.PreparedStatement
接口的特定实现的问题。
((OraclePreparedStatement) getStatement()).registerReturnParameter(index, sqlType);
java.lang.ClassCastException:
org.apache.commons.dbcp.DelegatingPreparedStatement
cannot be cast to oracle.jdbc.OraclePreparedStatemen
我明白为什么会这样。 有什么方法可以使用特定于供应商的 PreparedStatement 实现,但仍然可以使用 Commons DBCP 提供的连接池? 我想使用特定于 Oracle 实现的 registerReturnParameter() 和 getReturnResultSet()。我知道我违反了基本规则#1 ...
此外, PoolingDataSource 包装了一个 OracleXADataSource 这让我相信它以某种方式可以做到这一点......