【问题标题】:Move cursor to first row after while loop ResultSet在while循环ResultSet之后将光标移动到第一行
【发布时间】:2013-07-01 07:21:54
【问题描述】:

如果由于不同的原因我必须通过相同的ResultSet 使用while(rs.next()) 循环两次,我该怎么做才能使ResultSet 不会自动关闭并防止'ResultSet 关闭例外'?我尝试使用resultset.first() 将光标移回第一个循环后的第一行,但即使在此语句中也会触发此错误!

【问题讨论】:

    标签: java cursor resultset


    【解决方案1】:

    这取决于您使用的驱动程序。

    某些驱动程序无法重置ResultSet。在这种情况下,您将在调用first() 时收到Exception

    如果您的驱动程序支持在ResultSet 中滚动,您可以通过调用getResultSetType() 来签入Statement

    如果可能,请尝试在一次迭代中完成两件事,因为您永远不知道是否可以在 ResultSet 上进行第二次迭代。

    【讨论】:

    • 为了安全起见,我在一次迭代中完成了这两件事。至少我可以把它们分开!我真的发现循环结果集的问题!感谢您的帮助:)
    猜你喜欢
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2017-10-19
    相关资源
    最近更新 更多