我有一个由Spring管理的c3p0.ComboPooledDataSource,负责管理我的数据库连接。当我grab a PreparedStatement instance from a connection时,我发现C3P0实际上是返回一个实现PreparedStatement接口的NewProxyPreparedStatement类的实例。精细。
但是,当我调用一些定义为此合约一部分的方法时,我得到以下RuntimeException java.lang.AbstractMethodError:com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.isClosed()Z
Looking at the source code,我可以看到这个类没有提供许多方法,这些方法作为Statement和PreparedStatement合同的一部分进行了概述。这段代码不应该编译。我觉得我错过了一些重要的东西,但在这里相当先进。这怎么可能作为图书馆的一部分发货?
我希望使用PreparedStatement.isClosed方法,这是我应该将这些对象的管理留给Spring的实际潜在问题吗?
答案 0 :(得分:1)
升级到c3p0-0.9.5的最新预发行版,它支持所有JDBC4 api。您使用的版本仅支持JDBC3。如果您喜欢托管依赖项,请使用groupId:com.mchange,artifactId:c3p0,version:0.9.5-pre5。否则binary distributions are on sourceforge。