ResultSet的next()方法的问题

if(rs.next()){......}监视rs.next(),明明是true。为什么程序没有进入if内等... if (rs.next()){
......
}

监视rs.next(),明明是true。为什么程序没有进入if内 等
展开
 我来答
memorymyann
2008-11-04 · TA获得超过636个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:275万
展开全部
恩,rs.next不要用debug去监视,会出问题。

原因:这和debug有关,确切告诉你debug是会执行你所监视的代码的。有点抽象,不过拿你的rs.next()的来做例子就明白了。

打个比方,比如说rs里面有一个值,那么你肯定是认为rs.next为true。那么再执行一次rs.next()呢,那肯定就是false.同样的道理,debug中rs.next被你监视,当你看的他的结果时候,rs.next()被执行了一次,再到你的程序中if(rs.next()),这时它已经是被执行第2次了。所以他返回的是false.如果你真的很想监视这个变量,我的意见是:

boolean flag = rs.next();
if(flag)
监视flag.

不知道我说清楚了没。
乐乐爱知道
2015-06-24 · TA获得超过938个赞
知道答主
回答量:335
采纳率:100%
帮助的人:102万
展开全部
如果你的空指针报错位置是在while(rst.next()),那你就要检查while循环里面是不是对rst做了什么操作有可能会导致rst变成null的

如果你的报错位置是在if (rst2.next()),那你就要检查执行rst2=stmt.executeQuery(...)的时候rst2是不是不为null了

目前知道就这两点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w2gavin
2008-11-04 · TA获得超过470个赞
知道小有建树答主
回答量:141
采纳率:0%
帮助的人:107万
展开全部
建议使用while(rs.next()),既可以实现if (rs.next())的功能,又可以让rs的数据库光标自动移动
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式