如果存在一个开放的对象,则Statement接口中的所有执行方法都会隐式关闭一个语句的当前
ResultSet
对象。当
Statement
对象关闭时,其当前ResultSet
对象(如果存在)也将关闭。
但是,在Stack Overflow和Web上的ResultSet
之前,有多个建议要关闭Statement
。是否有已知的情况(可能是由于有缺陷的司机)关闭Statement
而不是ResultSet
会导致问题?
答案 0 :(得分:3)
错误的JDBC驱动程序可能无法关闭ResultSet。无论最好是特定的还是有意的,所以你应该在try ... finally块中关闭ResultSet。如果您使用的是JDK7,则可以在try子句中声明ResultSet变量,因为它实现了AutoCloseable,它将在没有finally子句的情况下自动关闭。