如果由于不同的原因,我必须通过相同的ResultSet
使用while(rs.next())
一个接一个地循环两次,我该怎么做才能使ResultSet
不会自动关闭,并防止"ResultSet is closed Exception"?我尝试使用resultset.first()
将光标移回第一个循环后的第一行,但即使在该语句中也会出现此错误!
这取决于您使用的驱动程序。
某些驱动程序无法重置ResultSet
。在这种情况下,当调用first()
时,您将得到一个Exception
。
如果您的驱动程序支持在ResultSet
中滚动,您可以通过调用getResultSetType()
来签入Statement
。
如果可能的话,试着在一次迭代中完成两件事,因为你永远不知道是否可以在ResultSet
上进行第二次迭代。