2 u013739408 u013739408 于 2016.03.12 10:34 提问

jdbc resultSet.next() watch的时候是否会自己运算一次

请教一个问题,我在myeclipse中watch了 resultSet.next()这个表达式,同学说这样调试会出问题,因为eclipse会先在watch里计算一次 resultSet.next()这个表达式,然后再回到程序中,也就是说watch中的这个 resultSet.next()会跑一次,跑完以后再到程序中跑,因此会改变 resultSet.next()的值。我觉得有点不可思议,因为我一直以为watch中的所有表达式都只是简单的复制程序中回应表达式的值而已,只是方便我们调试的时候观察表达式的值而已,难道watch中的表达式真的会计算一遍吗?

1个回答

qq_25093755
qq_25093755   2016.03.12 10:49
已采纳

运行到resultSet.next的时候会执行下一个数。比如你想浏览1到10,用这个表达式循环浏览的时候,会从2到10。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
ResultSet.next()方法
以下是javadoc中的注释:“boolean java.sql.ResultSet.next() throws SQLExceptionMoves the cursor forward one row from its current position. A ResultSet cursor is initially positioned before the first row; the fi...
ResultSet.next()一直是false
是这样的我在用JDBC读取一个我刚刚在pl/sql里新建的表的数据,于是乎问题就来了, 我的ResultSet.next()一直是false! 刚开始我的心情还是很平静的:不就是个小bug吗,分分钟搞定! 开始以为查询语句错了,于是把语句复制到pl/sql里检查,很好没有错误,可以查到 相应的数据。难道是数据库连接问题?可是控制台也没有报错呀!我有仔细检查了 一下我的Java代码,并
ResultSet.next() 非常慢
ResultSet.next() 非常慢 今天遇到一个问题, java中执行ResultSet.next() 非常慢。 详细情况 SQL语句如下 select * from ( select * from ( a union all b ) order by xxx ) where rownum 100 其中a和b是两个子查询
出现“未调用resultset.next()”的错误
当调用execut返回结果时,这时候结果指向是在第一行的前面,注意不是第一行,而是其前面,如果在没有调用resultset.next()方法之前又想要获取结果中的数据,就会出现如题所示错误
ResultSet中next()方法中的一个陷阱。
例如有如下代码:……ResultSet rs=s.executeQuery("select * from friends");……如果想直接用rs.getXXX(X)的方法读取第一行的数据时会出现异常,这是由于初始的记录指针指向的是第一条记录的上一条记录,也就是第0条记录,当然实际不存在第0条记录,所以就会出现异常。所以一般如果要顺序读出所有记录一般用一下的一个循环: wh
ResultSet中做if判断时next()两次取不到第一条数据的问题
JDBC判断数据库查询结果集是否为空 通常来说都是用rs.next()来判断结果集是否为空,但是由于执行rs.next()后指针指向的是结果集中的第一条记录,此时再用while(rs.next())取结果集中的数据就会导致第一条数据无法得到。所以用以下代码段是个比较好的判断方法。 if(!rs.next())   //结果集为空 {                  //执行某操
angular中$watch踩的坑
html> html ng-app="myApp"> head> meta charset="UTF-8"> title>angular demotitle> script src="../bower_components/angular/angular.min.js">script> head> body> div ng-controller="contain
vue中watch的使用时机,如何在初始化后再使用?
今天在做项目的时候,遇到这么一个需求,就是当页面切换的时候,如果当前页面没有改动,就弹出一个提示窗。我当时的第一反应是,这里应该使用watch来进行观察,再用一个变量来标识是否用户进行了改动,代码如下:export default { data() { return { data_list: [], do_not_sav
ResultSet对象--next()方法
ResultSet是您访问数据库返回的数据表,也就是结果集合,一开始是处于第一行之前,即beforeFirst,第一次使用next()就将指针指向返回结果集的第一行。每使用一次next(),指针就指向下一行,这时候你就可以使用rs.getObject()或者getInt()或者getString()之类的方法返回该行的某一个字段的值,也就是getObject()方法里面的参数可以传递索引(索引由1
AngularJS $watch用法
$watch()执行时会先调用一次传入的回调,可以认为是初始化。 用法: $scope.name = 'zhangsan'; $scope.count=0; $scope.$watch('name', function(newValue, oldValue) { // console.log(newValue+ '===' +oldValue); ++$sco