0

我有一个由 Spring 管理的 c3p0.ComboPooledDataSource,用于管理我的数据库连接。当我从一个连接中获取 PreparedStatement 实例时,我发现 C3P0 实际上正在返回一个实现 PreparedStatement 接口的 NewProxyPreparedStatement 类的实例。美好的。

但是,当我调用定义为本合同一部分的一些方法时,我得到以下 RuntimeException java.lang.AbstractMethodError: com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.isClosed()Z

查看源代码,我可以看到这个类没有提供许多方法,这些方法被概述为 Statement 和 PreparedStatement 契约的一部分。此代码不应编译。我觉得我错过了一些重要的东西,但在这里相当先进。这怎么可能作为图书馆的一部分运送?

我希望使用 PreparedStatement.isClosed 方法,是我应该将这些对象的管理留给 Spring 的实际潜在问题吗?

4

1 回答 1

1

升级到最新的 c3p0-0.9.5 预发行版,它支持所有 JDBC4 api。您使用的版本仅支持 JDBC3。如果您喜欢托管依赖项,请使用 groupId: com.mchange, artifactId: c3p0, version: 0.9.5-pre5。否则二进制发行版在 sourceforge 上

于 2013-11-07T10:23:58.187 回答