判斷ResultSet結果集是否為空
阿新 • • 發佈:2019-01-30
很多時候我們都要判斷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());
}