在coding的时候,发现每次使用JDBC连接数据库的时候,使用resultset每次使用next()方法循环取出查询的数据的时候,发现每次用到第一条的数据的时候总是抛出异常,后来debug的时候,才发现每次都是第一条记录是取不到的。
后来检查代码的时候,才发现呢,我在每次while(rs.next())的之前使用了
if(rs.next())的方法,代码格式如下所示:
if(!rs.next()) //结果集为空
{
//执行某操作
}
while(rs.next()){
// 执行某操作
}
从以上的代码可以看到,我们在while循环的之前,已经使用next(),这个时候的在使用next的时候,指针已经移到第二条记录了,所以才会总是取不到第一条数据。
本文解析了在使用JDBC的ResultSet对象时,常见的误用next()方法导致无法获取第一条记录的问题。通过代码示例说明了在while(rs.next())前使用rs.next()会将指针提前移动至第二条记录,从而跳过首条数据。
742





