作业帮 > 综合 > 作业

rs.next 问题if(rs.next()){ rs.first();}else { dos.writeUTF("fa

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/13 11:16:08
rs.next 问题
if(rs.next())
{
rs.first();
}
else
{
dos.writeUTF("false");
}
while(rs.next())
{
String result = rs.getString(3)+rs.getString(4)+rs.getString(5)+rs.getString(6);
dos.writeUTF(result);
}
我想取完整的数据,但是根据上面的编码,第一组数据都取不了
麻烦高手指教!
请详细给出方法代码,谢谢了
rs.next 问题if(rs.next()){ rs.first();}else { dos.writeUTF(
楼上所得有道理.
rs是结果集.查询出的记录是一个列表,初始时指针指向的是第一条记录之前的.
每rs.next()一次指针都会向后移动一位,指向下一条记录.
如果没有设置结果集的参数,那么正常情况下结果集都只能往下走,不能退回,也就是rs.next()后,是不能再指向已经指过的记录了,但是如果设置了
conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
那么就可以使用rs.first()、rs.last()等方法自己移动结果集指针,但是这种特性(可滚动结果集)是需要数据库支持的,好在现在大部分数据库都是支持的.
问题已经说了,上边已经取了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);
}