今天在循环查询结果时,发现while(rs.next)只能循环一次,无法第二次循环,最后发现是因为每一次next(),游标都会移动,移动到最后,便不能再次循环。
如果需要再次循环,可以在循环结束后,加上 rs.beforeFirst();代码,重置游标,方可再次循环。
如果rs.beforeFirst();报错;
是因为rs的游标默认不能向前,所以还需要改一个地方
将
st = conn.createStatement();
改为
st = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
这样
rs.beforeFirst();才会起作用。
源码还没有去研究过,有空去研究一下,详细记录一下。?
关于while(rs.next)只能循环一次。
最新推荐文章于 2022-10-25 09:53:16 发布