ResultSet rs 之 rs.next()

ResultSet 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); }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值