ResultSet中作if判断时next()两次取不到第一条数据的问题

JDBC判断数据库查询结果集是否为空

一般来讲都是用rs.next()来判断结果集是否为空,可是因为执行rs.next()后指针指向的是结果集中的第一条记录,此时再用while(rs.next())取结果集中的数据就会致使第一条数据没法获得。因此用如下代码段是个比较好的判断方法。

if(!rs.next())   //结果集为空
{
        
        //执行某操做
}
else    //不为空
{
        
        do
        {        
               //循环执行某操做,这里用do-while先走执行操做,而后while判断。
        
    
    }while(rs.next());


-------------------------------------错误的作法-------------------------------------
这里当正常判断: if(rs.next()){//rs不为空

           while(rs.next()){

           //循环执行某操做

           }
            
        }else{//rs为空
        
           //执行某操做
        }
这个时候由于if里的rs.next()作判断游标日后走了一个,因此当下面while里rs.next作循环判断的时候,就是
从第二条数据开始的了。可是咱们要取得第一条数据。就用上面的作法。数据库

相关文章
相关标签/搜索