【问题标题】:Java MySQL Iterate Backwards through ResultSetJava MySQL 通过 ResultSet 向后迭代
【发布时间】:2015-07-17 22:21:18
【问题描述】:

我已经执行了一个查询,它返回一个我想要向后迭代的数据的ResultSet。在 for 循环中,它看起来像这样:

for (int i = MAX; i >=0; i--){
     // do something
}

唯一的问题是我的数据库中没有一个完全连续的列,而是我有一个唯一的 id,但有时会跳过数字。那么,使用实际结果集,有什么方法可以让while(set.next()) {...} 做相反的事情吗?谢谢。

【问题讨论】:

  • 能够“反向滚动”更少依赖于“Java”或“JDBC”......它取决于您的数据库支持“可滚动游标”,并在您打开查询时指定它.例如:java2novice.com/jdbc/scroll-read-only

标签: java mysql


【解决方案1】:

如果你有一个可滚动的结果集,你可以向后遍历一个结果集。你可以这样做

ResultSet.TYPE_SCROLL_INSENSITIVEResultSet.CONCUR_READ_ONLY在创建语句时。

然后你可以使用resultset.last() 到达最后一个条目并使用resultset.previous() 向后遍历

编辑:如果您希望结果按您提到的非顺序 ID 的降序排列,您可以通过执行 order by id desc 以降序检索结果集,然后正常遍历结果集

【讨论】:

  • 感谢您的回答! :D
猜你喜欢
  • 2019-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-05-31
  • 2015-09-25
  • 2010-11-15
  • 2011-01-07
  • 1970-01-01
  • 2010-09-16
相关资源
最近更新 更多