java.sql.ResultSet丢失数据的问题 resultset.last(); resultset.first(); 这样会丢失数据?

代码如下....
ResultSet results = stmt.executeQuery();
// results.last();
// int count = results.getRow();
// results.first();
....
while (results.next()) {
....

}
如果不用注释的代码,遍历了29条记录;如果用注释的代码,遍历28条记录。请问这是为什么?

因为ResultSet 第一条记录指向的是空 执行一次results.next()才会得到数据的第一条记录,这就是为什么能用while (results.next())遍历所有记录。否则这样的循环会跳过第一条记录。
执行了你注释的代码后
results.first(); 就把游标指向的数据的第一条记录,然后再while (results.next()) 就成从第二条记录开始遍历,这样结果就漏掉了第一条数据。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-01
results.first之后在再用results.next()就把第一条少了。你可以用do while本回答被提问者采纳
第2个回答  2013-03-01
你自己可以测试,在result.last()和result.first() 打印一下看看数据定位在哪一行不就清楚了吗.
但是这玩意不实用!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网