问题描述
我已经执行了一个查询,该查询返回我想要向后迭代的数据ResultSet
。
在for循环中,它看起来像这样:
for (int i = MAX; i >=0; i--){
// do something
}
唯一的问题是我的数据库中没有一个完全顺序的列,而是我有一个唯一的ID,但有时会跳过数字。
那么,使用实际的结果集,我可以采用某种方式while(set.next()) {...}
但反过来?
谢谢。
1楼
如果你有一个可滚动的结果集,你可以向后遍历结果集。你可以这样做
创建语句时ResultSet.TYPE_SCROLL_INSENSITIVE
和ResultSet.CONCUR_READ_ONLY
。
然后你可以使用resultset.last()来获取最后一个条目并使用resultset.previous()向后遍历
编辑:如果您希望结果按照您提到的非顺序ID的降序排列,则可以通过order by id desc
执行order by id desc
降序检索结果集,然后正常遍历结果集