如果我必须使用while(rs.next())
通过相同的ResultSet
出于不同的原因相继循环两次,我可以做什么,以便ResultSet
不会自动关闭防止'ResultSet被关闭异常'?我尝试使用resultset.first()
将光标移回第一个循环后的第一行,但即使在此语句中也会触发此错误!
答案 0 :(得分:3)
这取决于您使用的驱动程序。
某些驱动程序无法重置ResultSet
。在这种情况下,您在致电Exception
时会收到first()
。
如果您的驱动程序支持在Statement
中滚动,则可以通过致电getResultSetType()
来检查ResultSet
。
如果可能的话,尝试在一次迭代中完成你的两件事,因为你永远不知道你是否可以在ResultSet
上再次迭代。