直接来自ResultSet.close()上的文档:
立即释放此ResultSet对象的数据库和JDBC资源,而不是等待它自动关闭时发生。
…
注意:当关闭,重新执行或用于从多个结果序列中检索下一个结果时,由该对象生成的Statement对象会自动关闭ResultSet对象。
因此,如果关闭了关闭生成了ResultSet的Statement的语句,则会得到该异常。
另一个问题的答案:您不应该从这样的ResultSet中读取结果。执行一次选择操作,一次从ResultSet中读取所需的所有数据,关闭连接,然后以后您可以读取所需数量的数据。您实际上不应该有一个外部资源/类来调用您的
getValueAt方法,您希望该方法仍可以连接到数据库。连接可能由于许多其他原因而终止,所以这不是可行的方法。
第三个答案:以上回答。
最后的答案:显式释放资源,而无需等待Statement结束时将其关闭。



