现在的位置: 首页 > 综合 > 正文

判断ResultSet结果集是否为空

2018年05月19日 ⁄ 综合 ⁄ 共 961字 ⁄ 字号 评论关闭

很多时候我们都要判断ResultSet是否存在记录, 但是java里ResultSet 这个对象没有提供一个方法能判断 ,我们只能用next这个方法, next会滚动一条记录丢失第一条数据, 往往很多时候都需要第一条记录,所以我们要做相应的处理  我平常在开发中用到了以下两种形式 。

 

第一种方法  不及时更新ResultSet 结果集

[java] view
plain
copy

  1. //sql脚本  
  2. String sql="seelect * from tb_demo";  
  3. //改成可以双向滚动,但不及时更新,就是如果数据库里的数据修改过,  
  4. //并不修改ResultSet记录  必须要改成 TYPE_SCROLL_INSENSITIVE  
  5. PreparedStatement pstmt = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,   
  6. ResultSet.CONCUR_READ_ONLY);  
  7. //执行查询  
  8. ResultSet rs = pstmt.executeQuery();  
  9. //判断是否存在记录  
  10. if (rs.next()) {  
  11.  //存在记录 rs就要向上移一条记录 因为rs.next会滚动一条记录了  
  12.  rs.previous();  
  13.  //在执行while 循环  
  14. while(rs.next()){  
  15.  system.out.println(rs.getInt(1));  
  16. }  
  17. }  


推荐第二种方法  及时更新ResultSet 结果集

[java] view
plain
copy

  1. //sql脚本  
  2. String sql="seelect * from tb_demo";  
  3. PreparedStatement pstmt = conn.prepareStatement(sql);  
  4. //执行查询  
  5. ResultSet rs = pstmt.executeQuery();  
  6. //判断是否存在记录  
  7. if (rs.next()) {  
  8.      //有的话 先获取第一条记录  
  9.      do{  
  10.           System.out.println(rs.getInt(1));  
  11.  } while(rs.next());  
  12. }  

抱歉!评论已关闭.