resultsetが空かどうかを判断する
4355 ワード
resultsetが空かどうかを判断する
質問説明:データベースからデータを問い合せてresultsetが空の条件であると判断し、resultset=nullを用いて判断し、テスト時にその条件を用いて判断する際にその対応分岐に入ることができないことを発見し、googleを1回行った後、結果をここに記録し、よく使われる3つの方法があります.
1.第1の方法
このメソッドは、まずResultSetの最後の行にジャンプし、行番号を取得します.行番号が0の場合、ResultSetは空です.
2.第2の方法
ResultSetが空でない場合、カーソルは1番目のレコードの前を指し、空の場合は1番目のレコードが存在しないため、カーソルは1番目のレコードの前を指すことができません
3.第3の方法
第3の方法の考え方:ResultSetが空でない場合、そのカーソルは次の1番目のレコードを指し、空であれば次のレコードはない.
まとめ:検証された3つの方法はすべてResultが空であるかどうかを正確に判断することができ、第1、第3の方法を使用した後、カーソルがジャンプしたことに注意しなければならない.
質問説明:データベースからデータを問い合せてresultsetが空の条件であると判断し、resultset=nullを用いて判断し、テスト時にその条件を用いて判断する際にその対応分岐に入ることができないことを発見し、googleを1回行った後、結果をここに記録し、よく使われる3つの方法があります.
1.第1の方法
このメソッドは、まずResultSetの最後の行にジャンプし、行番号を取得します.行番号が0の場合、ResultSetは空です.
result = dbBean.executeQuery(sql);
if (result.getRow() == 0){
flag = 1;
}
2.第2の方法
ResultSetが空でない場合、カーソルは1番目のレコードの前を指し、空の場合は1番目のレコードが存在しないため、カーソルは1番目のレコードの前を指すことができません
rsOld = stmt.executeQuery("select * from randnumber");
if(rsOld.isBeforeFirst()){
System.out.println("isBeforeFirst is true");
}else{
System.out.println("isBeforeFirst is false");
}
3.第3の方法
第3の方法の考え方:ResultSetが空でない場合、そのカーソルは次の1番目のレコードを指し、空であれば次のレコードはない.
rsOld = stmt.executeQuery("select * from randnumber");
if(rsOld.next()){
System.out.println("rsOld.next() is true");
}else{
System.out.println("rsOld.next() is false");
}
まとめ:検証された3つの方法はすべてResultが空であるかどうかを正確に判断することができ、第1、第3の方法を使用した後、カーソルがジャンプしたことに注意しなければならない.