ResultSet中做if判断时next()两次取不到第一条数据的问题
ResultSet中做if判断时next()两次取不到第一条数据的问题
不忘初心_xu 发表于3个月前
ResultSet中做if判断时next()两次取不到第一条数据的问题
  • 发表于 3个月前
  • 阅读 17
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: 对于查询出来的结果需要先判断是否有值,有值怎么做,无值怎么做。有值的时候使用while循环对于只有一条数据是没有办法拿出来,需要使用do-while循环

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做循环判断的时候,就是
从第二条数据开始的了。但是我们要取得第一条数据。就用上面的做法。

共有 人打赏支持
粉丝 19
博文 38
码字总数 12589
×
不忘初心_xu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: