1. 程式人生 > >判斷ResultSet結果集是否為空

判斷ResultSet結果集是否為空

很多時候我們都要判斷ResultSet是否存在記錄, 但是java裡ResultSet 這個物件沒有提供一個方法能判斷 ,我們只能用next這個方法, next會滾動一條記錄丟失第一條資料, 往往很多時候都需要第一條記錄,所以我們要做相應的處理  我平常在開發中用到了以下兩種形式 。

第一種方法  不及時更新ResultSet 結果集

//sql指令碼
String sql="seelect * from tb_demo";
//改成可以雙向滾動,但不及時更新,就是如果資料庫裡的資料修改過,
//並不修改ResultSet記錄  必須要改成 TYPE_SCROLL_INSENSITIVE
PreparedStatement pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE, 
ResultSet.CONCUR_READ_ONLY);
//執行查詢
ResultSet rs = pstmt.executeQuery();
//判斷是否存在記錄
if (rs.next()) {
 //存在記錄 rs就要向上移一條記錄 因為rs.next會滾動一條記錄了
 rs.previous();
 //在執行while 迴圈
while(rs.next()){
 system.out.println(rs.getInt(1));
}
}

推薦第二種方法  及時更新ResultSet 結果集

//sql指令碼
String sql="seelect * from tb_demo";
PreparedStatement pstmt = conn.prepareStatement(sql);
//執行查詢
ResultSet rs = pstmt.executeQuery();
//判斷是否存在記錄
if (rs.next()) {
     //有的話 先獲取第一條記錄
     do{
          System.out.println(rs.getInt(1));
 } while(rs.next());
}