永发信息网

rs.next 问题

答案:4  悬赏:80  手机版
解决时间 2021-05-05 05:42
rs.next 问题
最佳答案
如果说是"判断结果集里有没有值" 那么用if(rs.next) 。while是用来做循环输出的 换句话说 就是"如果结果集里还有值" 没有则停止循环 这个一般在JSP做显示用。
1、rs = stmt.exeQuery(sql)后,rs肯定不会为null,注意,是rs对象不会为null,而不是其包含的result。
2、既然rs不会为null,所以在rs = stmt.exeQuery(sql)后,使用while(rs.next())或if(rs.next())时就不用判断rs != null。
3、rs.next时,游标最先是指向第一条记录前的位置,所以第一次rs.next后,游标指向的正好是第一条记录(如果有的话)。
4、要判断rs的结果是否为空,只要使用一次rs.next方法就行了,如果它返回为false,则证明rs的结果为null。

rs是结果集。查询出的记录是一个列表,初始时指针指向的是第一条记录之前的。每rs.next()一次指针都会向后移动一位,指向下一条记录。
如果没有设置结果集的参数,那么正常情况下结果集都只能往下走,不能退回,也就是rs.next()后。
conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY)。
可以使用rs.first()、rs.last()等方法自己移动结果集指针,但是这种特性(可滚动结果集)是需要数据库支持的,好在现在大部分数据库都是支持的。
全部回答
你好,一般首先声明 ResultSet rs=null;
rs是用于保存数据库查询到的结果集
UserInfo userinfo=null;
--这中间是对数据库查询的操作
if(rs.next){
userinfo=new UserInfo();
}
在这里UserIn不能首先实例化 要在rs.next有结果的时候在实例化,不然当你返回值的时候一直都有值,只是并未被赋值而已,我以前就遇到类似的问题,我也是个新手,如有说错的地方就一笑而过吧
程序中运用.last()和.first()方法,需要在创建statement时修改参数
smt = conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
另外,在代码中先rs.first(),再rs.next(),然后再取结果,会从查询结果的第2条记录开始取值
楼上所得有道理。
rs是结果集。查询出的记录是一个列表,初始时指针指向的是第一条记录之前的。
每rs.next()一次指针都会向后移动一位,指向下一条记录。
如果没有设置结果集的参数,那么正常情况下结果集都只能往下走,不能退回,也就是rs.next()后,是不能再指向已经指过的记录了,但是如果设置了
conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
那么就可以使用rs.first()、rs.last()等方法自己移动结果集指针,但是这种特性(可滚动结果集)是需要数据库支持的,好在现在大部分数据库都是支持的。
======================
翻译下你的代码:
if(rs.next()){ //判断结果集rs是否有记录,并且将指针后移一位
rs.first();//如果有记录,再将指针指向第一条(需要设置结果集类型)
}
else
{
dos.writeUTF("false"); //否则输出false
}
while(rs.next()) //如果rs有记录,那么迭代,但是因为上边已经使用rs.next将指针指向第一条记录了,那么此时初始时再next时实际上指向的是第二条记录。
{
String result = rs.getString(3)+rs.getString(4)+rs.getString(5)+rs.getString(6); //取记录结果值
dos.writeUTF(result);
}
=========================
问题已经说了,上边已经取了rs.next,指针指向的是第二条记录。所以可以这样试试:
if(rs.hasNext()) //判断结果集是否有记录,此方法只是判断,指针不移动
{
..... //做需要做的事情
}
else
{
dos.writeUTF("false");
}
while(rs.next())
{
String result = rs.getString(3)+rs.getString(4)+rs.getString(5)+rs.getString(6);
dos.writeUTF(result);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
江苏亿米木业有限公司这个地址在什么地方,我
电脑升级:高手请进
翻译词,句,全文。薛谭为何遂留不去,这个故
蓝黛丹尼美体内衣是传销吗
机械表一直走的原理
好看的空间怎么弄
请问爱情保质期是多长
这两个标志那个好看啊?
谁能给我一个《三位一体》这个游戏的下载地址
有社交恐惧症怎么办?
有关于"阳光"的记叙问么?急用
什么是综合交通运输体系?
石民村这个地址在什么地方,我要处理点事
头发染色问题
昨晚梦见沙鱼而且沙鱼会说话是代表什么
推荐资讯
天津去杭州的火车票多少钱?
死神中是否真的有崩解和终解!
我是阴历一九九二年十月十一出生的;请问阳历
什么是化油器?跟电喷的有什么区别?
我是10年的毕业生,去咸宁职业技术学院就读的
用来网上交易的银行卡哪个好一点??具体扣费是
歌咏比赛标语,赞美爱情的诗句
庐江县合肥庐江农村商业银行(石头支行)地址在
黄钻当天开了 当天扣钱吗?
QQ英雄岛 以上游戏就显示发送数据失败 确定后
起名字,生辰阳历2009年11月11日11时47分,女
武则天对狄公有没有男女之情
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?