java中".next"的用法问题
编写了如下代码publicVectorchaxunquanbu(){Vectorv=newVector();Stringsql="select*from[user]";t...
编写了如下代码
public Vector chaxunquanbu(){
Vector v = new Vector();
String sql = "select * from [user]";
try {
pre=this.getcon().prepareStatement(sql);
res = pre.executeQuery();
while(res.next()){
Vector b = new Vector();
b.addElement(res.getString("username"));
b.addElement(res.getString("userpwd"));
v.add(b);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.getclose(con, pre, res);
}
return v;
}
对于其中res.next的意思很不明确
但是因为它可以用字while的循环条件中说明它的数据类型应该是布尔值
但是意思就完全不明白
有同学跟我说res.next的意思是判断是否有下一条数据
但是据此解释,假设数据库中有两条数据那么应该只能显示第一条,因为按照同学的解释判断至第二条的时候已经没有第三条了while循环就不会执行
所以这个解释应该是不对或者是不正确的
个人理解这个应该是用来判断resultset中是否有数据.不知道这个理解正确与否
小白求解 展开
public Vector chaxunquanbu(){
Vector v = new Vector();
String sql = "select * from [user]";
try {
pre=this.getcon().prepareStatement(sql);
res = pre.executeQuery();
while(res.next()){
Vector b = new Vector();
b.addElement(res.getString("username"));
b.addElement(res.getString("userpwd"));
v.add(b);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.getclose(con, pre, res);
}
return v;
}
对于其中res.next的意思很不明确
但是因为它可以用字while的循环条件中说明它的数据类型应该是布尔值
但是意思就完全不明白
有同学跟我说res.next的意思是判断是否有下一条数据
但是据此解释,假设数据库中有两条数据那么应该只能显示第一条,因为按照同学的解释判断至第二条的时候已经没有第三条了while循环就不会执行
所以这个解释应该是不对或者是不正确的
个人理解这个应该是用来判断resultset中是否有数据.不知道这个理解正确与否
小白求解 展开
推荐于2017-11-25
展开全部
res.next完成两个动作,
1、数据库指针指向下一条记录;
2、如果没有返回false,自然循环退出;如果有记录,完成第二个动作,把记录内容存入res中,并返回true,这样在循环体中就可以使用res对象读取记录中的内容了
1、数据库指针指向下一条记录;
2、如果没有返回false,自然循环退出;如果有记录,完成第二个动作,把记录内容存入res中,并返回true,这样在循环体中就可以使用res对象读取记录中的内容了
追问
假设指针起始位置为@标记的位置
@1@
2
那么res.next怎么能读到1中数据呢?
是不是说
能不能形象化的理解为:
指针起始位置应该是@@标记的位置
@null@
1
2
null
然后通过.next来获取1和2
当指针移动到
null
@1@
2
null
时获取第一条数据
当指针移动到
null
1
@2@
null
时获取第二条数据
当指针移动到
null
1
2
@null@
时返回false
追答
这样理解也可以,也下面的更容易理解些:
res = pre.executeQuery();
这句执行了之后,就把指针定位在表的表头的位置,
这样res.next就获取第一条记录了。
展开全部
当你的sql语句执行完了之后,查询出的数据是多条时,它会将你查询出的数据按照顺序逐条进行操作,它读取完第一条数据之后,就会通过res.next()进行判断,判断在它之后还有没有其他数据,如果有的话,返回true,再逐条进行操作,依次类推。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的猜测是完全正确的的。你应该知道数据库中存在一个指针 指向着当前的数据库记录 res.next返回的是布尔型,意义是返回当前指针再数据库中有还是没有结果, 但计算机再执行这个属性的时候同时也吧数据库中当前的指针 移动到吓一条记录。 Asp ,asp.net ,php仲都有这种用法
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.next的就是判断是否有下一条数据
前一条数据已经取出来了 add到vector里去了
如果没有下一条了 就不循环了
我的理解是这样的
前一条数据已经取出来了 add到vector里去了
如果没有下一条了 就不循环了
我的理解是这样的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |