ResultSet的next()方法的问题
if(rs.next()){......}监视rs.next(),明明是true。为什么程序没有进入if内等...
if (rs.next()){
......
}
监视rs.next(),明明是true。为什么程序没有进入if内 等 展开
......
}
监视rs.next(),明明是true。为什么程序没有进入if内 等 展开
展开全部
恩,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.
不知道我说清楚了没。
原因:这和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.
不知道我说清楚了没。
威孚半导体技术
2024-08-19 广告
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...
点击进入详情页
本回答由威孚半导体技术提供
展开全部
如果你的空指针报错位置是在while(rst.next()),那你就要检查while循环里面是不是对rst做了什么操作有可能会导致rst变成null的
如果你的报错位置是在if (rst2.next()),那你就要检查执行rst2=stmt.executeQuery(...)的时候rst2是不是不为null了
目前知道就这两点
如果你的报错位置是在if (rst2.next()),那你就要检查执行rst2=stmt.executeQuery(...)的时候rst2是不是不为null了
目前知道就这两点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议使用while(rs.next()),既可以实现if (rs.next())的功能,又可以让rs的数据库光标自动移动
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询