JDBC规范4.3中有对Statement关闭后是否需要关闭ResultSet进行说明。
应用调用了 statement.close 表明其已经完成了 statement 的使用。所有的 statment 对象都将在创建他们的 connection 被关闭时 一起被关闭。但在 statements 对象已经处理完成后尽快关闭对程序来说是一个好的实现。这能够使得statment立刻释放占用的资源。
关闭一个statement对象同时也会使得该对象创建的所有resultSet对象被关闭。resultSet所持有的资源不会立刻被释放,直到GC执行, 因此当resultSet对象不再被需要时明确地关闭是一个很好的做法。
一旦statement对象被关闭,调用了该对象本身isColsed和colse方法的自身任何方法都将抛出SQLException异常。
以上有关 关闭statement对象的内容也同样适用于PreparedStatement和CallableStatement。