【发布时间】:2013-09-04 11:55:37
【问题描述】:
直接来自thisoracle教程:
在 Java SE 版本 7 及更高版本中提供的 JDBC 4.1 中,您 可以使用try-with-resources语句自动关闭
这是否意味着如果我将 Java 7 与 JDBC 4.0 或更早版本一起使用,我将无法使用 try-with-resources 语句?
提前致谢。
【问题讨论】:
直接来自thisoracle教程:
在 Java SE 版本 7 及更高版本中提供的 JDBC 4.1 中,您 可以使用try-with-resources语句自动关闭
这是否意味着如果我将 Java 7 与 JDBC 4.0 或更早版本一起使用,我将无法使用 try-with-resources 语句?
提前致谢。
【问题讨论】:
在带有 JDBC 4.0(或更早版本)驱动程序的 Java 7 中使用 try-with-resource 将起作用。您的应用程序使用 Java 7 中的java.sql 接口,正是这些接口实现了java.lang.AutoCloseable。 JDBC 4.0 实现将有一个符合AutoCloseable 契约的close() 方法(即它有一个方法close() 并抛出Exception 的子类),所以它可以工作。
它不是针对该接口的“版本”编译的事实并不重要,决定它是否工作的是接口和实现的运行时组合。这是 Java 语言规范中定义的 linking of classes 和 Binary Compatibility 的结果。
【讨论】: