java 中声明PreparedStatement类时出错(导入包:java.sql.*)

java 中声明PreparedStatement类时出错(导入包:java.sql.*):The resource type PreparedStatement does not implement java.lang.AutoCloseable

阅读 10.7k
4 个回答

PreparedStatement的原型是public interface PreparedStatement extends Statement ,是一个接口,你需要实现所有的接口啊

新手上路,请多包涵

需要你提供出错行的代码才能确定。很可能你有这么几行代码:

try(
PreparedStatement pstmt = conn.prepareSatement("select ...");
){
...
}

这里你使用了Java最近版本加入的try-with-resource语法。这个语法要求小括号内定义的变量是先Closeable接口。如果你用的PreparedSatement所在的类库比较旧,可能没有实现这个接口。

可能你使用的语法超出了你引用的JRE类库的版本。

一看报错就是用了jdk7的try with resources的语法,try括号里面的资源得是实现了AutoCloseable,而PrepareStatement没有实现AutoCloseable接口,换种用法吧,try-finally

The resource type PreparedStatement does not implement java.lang.AutoCloseable

一看这行就想起了java7出现的try with resources的语法糖。换try-catch-finally的语法吧,PrepareStatement没有实现AutoCloseable接口,通常实现这个接口都是java的IO流类

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题