结果集:做 ... 而 (...);与 while(...) ... [重复]
Posted
技术标签:
【中文标题】结果集:做 ... 而 (...);与 while(...) ... [重复]【英文标题】:ResulSet: do ... while (...); vs. while(...) ... [duplicate]结果集:做 ... 而 (...);与 while(...) ... [重复] 【发布时间】:2019-08-19 14:53:47 【问题描述】:我经常看到人们在做while(resultSet.next()) ...
,但这不是跳过第一行吗?它直接切换到下一行。
你不应该改用do ... while (resultSet.next());
吗?
【问题讨论】:
在使用 next() ;) 之前尝试访问第一个结果。 【参考方案1】:不,它不会跳过第一行。
next()
需要在处理第一行之前调用。
所以实际上,do ... while
解决方案不起作用,因为这样 ResultSet 就不会在循环的第一次迭代中正确定位。
【讨论】:
【参考方案2】:不,请阅读next() java docs
将光标从当前位置向前移动一排。 ResultSet 游标最初位于第一行之前; 第一次调用 next 方法使第一行成为当前行
【讨论】:
【参考方案3】:根据规范:
ResultSet 游标最初位于第一行之前;
所以实际上第一个next()
会将光标定位到第一行。
看
official JavaDoc
【讨论】:
【参考方案4】:没有。
ResultSet
包含一个内部光标,该光标在第一个元素之前开始。
如果您在将光标从此处移动之前尝试调用resultSet.getString("something")
,它将失败(为什么不尝试一下)。
while (resultSet.next()) ...
是遍历ResultSet
的首选方式
【讨论】:
以上是关于结果集:做 ... 而 (...);与 while(...) ... [重复]的主要内容,如果未能解决你的问题,请参考以下文章