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作循環判斷的時候,就是
從第二條數據開始的了。可是咱們要取得第一條數據。就用上面的作法。數據庫

相關文章
相關標籤/搜索