是否有JDBC驱动程序在关闭语句时无法关闭ResultSet?
很明显: 如果存在打开的对象,则语句接口中的所有执行方法都会隐式关闭语句的当前是否有JDBC驱动程序在关闭语句时无法关闭ResultSet?,jdbc,Jdbc,很明显: 如果存在打开的对象,则语句接口中的所有执行方法都会隐式关闭语句的当前ResultSet对象 当关闭语句对象时,其当前的结果集对象(如果存在)也将关闭 但是,无论是在堆栈溢出还是在web上,都有多种建议在语句之前关闭ResultSet。是否存在已知的情况(可能是由于错误的驱动程序)关闭语句而不是ResultSet会导致问题?错误的JDBC驱动程序可能无法关闭ResultSet。无论如何,最好是具体和有意的,所以您应该在try…finally块中关闭您的结果集。如果您使用的是JDK7,那么
ResultSet
对象
当关闭语句
对象时,其当前的结果集
对象(如果存在)也将关闭
但是,无论是在堆栈溢出还是在web上,都有多种建议在
语句之前关闭ResultSet
。是否存在已知的情况(可能是由于错误的驱动程序)关闭语句而不是ResultSet
会导致问题?错误的JDBC驱动程序可能无法关闭ResultSet。无论如何,最好是具体和有意的,所以您应该在try…finally块中关闭您的结果集。如果您使用的是JDK7,那么可以在try子句中声明ResultSet变量,因为它实现了AutoCloseable,所以它将在没有finally子句的情况下自动关闭 OP明确询问是否存在已知的有缺陷的JDBC驱动程序。这个答案只是重复了这个问题。在任何情况下,Oracle和Mysql都会在语句关闭时可靠地关闭ResultSet。