MySQL JDBC Connector不可编译?

时间:2015-02-27 11:01:43

标签: java mysql eclipse jdbc

使用MySQL ResultSetImpl我有以下错误: 在我正在参与的项目中,我们遇到了一个问题,即ResultSet在使用前被关闭,因此抛出异常。
为了分析此错误,我想在Thread.dumpStack()方法中添加ResultSet.close(),以便我可以识别错误来电的来源。
为了能够修改代码,我从这个位置下载了MySQL Package并将其解压缩:http://dev.mysql.com/downloads/connector/j/
我选择了“ platform independent ”packacke进行下载 之后我将“ com ”和“ org ”包复制到我的项目 src 文件夹中,并从lib文件夹中删除了mysql-jdbc.jar ,随后在eclipse项目设置中从java构建路径中删除jar 在项目清理和重建之后,我得到了几百个编译错误,比如

Exception SQLException is not compatible with throws clause in Driver.getParentLogger() or 


The type FabricMySQLConnectionProxy must implement the inherited abstract method Connection.createSQLXML()`" or

 The type CallableStatement must implement the inherited abstract method CallableStatement.getNString(int)`".  

现在我认为MySQL人员应该能够打包一个可编辑的jar文件,所以我很感谢我忽略的任何事情以及我应该采取哪些不同的做法以使这个事情发挥作用。

1 个答案:

答案 0 :(得分:1)

由于您的JDK版本较高而缺少接口方法。
您正在使用jdk 1.6(或更高版本)(例如,createSQLXML是自1.6以来的Connection的成员)。
您下载的源代码实现了Connection(和ResultSet,...)接口的Java 5(或更少)版本 如果您在运行Java 6或更高版本的应用程序中使用Java 5编译的jar,那就没问题了。但是如果你想用更高的Jdk编译源代码,你必须实现自1.5以来添加的新接口方法。
您可以通过选择日食add unimplemented method建议,每个类点击一次创建缺少的方法 您不需要为新方法编写内容,因为它们未被使用。