获取JDBC中的ResultSet的记录的条数

本文介绍了三种获取Java中ResultSet总行数的方法:直接利用ResultSet的getRow方法、通过循环遍历ResultSet以及使用SQL的count函数。

方法一:利用ResultSetgetRow方法来获得ResultSet的总行数

Java代码

 

  1. ResultSet rs;     
  2. rs.last(); //移到最后一行     
  3. int rowCount = rs.getRow(); //得到当前行号,也就是记录数     
  4. rs.beforeFirst(); //如果还要用结果集,就把指针再移到初始化的位置 

方法二:利用循环ResultSet的元素来获得ResultSet的总行数

Java代码

 

  1. ResultSet rs;     
  2. int rowCount = 0;      
  3. while(rset.next())      
  4. {      
  5.     rowCount++;      

方法三:利用sql语句中的count函数获得ResultSet的总行数

Java代码

 

  1. String sql = "select count(*) record_ from ( select * from yourtable t where t.column_ = 'value_' )";     
  2. ResultSet rs = ps.executeQuery(sql);      
  3. int rowCount = 0;      
  4. if(rs.next())      
  5. {      
  6.     rowCount=rs.getInt("record_");      

 

### JDBC ResultSet 获取数据规则 #### 创建连接并执行查询 为了从数据库中获取数据,首先需要创建一个 `Connection` 对象来建立到数据库的物理连接。接着使用此连接对象创建一个 `Statement` 或者更常用的 `PreparedStatement` 来准备 SQL 查询语句。 ```java // 假设已经获得了 Connection 连接 conn String query = "SELECT id, name, age FROM users"; try (PreparedStatement pstmt = conn.prepareStatement(query)) { try (ResultSet rs = pstmt.executeQuery()) { // 下面会介绍如何处理这个 ResultSet 对象 } } ``` #### 遍历 ResultSet 并读取数据 一旦有了 `ResultSet` 实例,就可以调用其方法遍历每一行记录,并从中提取字段值。通常情况下,这涉及到循环结构以及针对每列的数据访问操作: - 使用 `next()` 方法迭代游标位置至下一条记录; - 利用特定类型的 getter 函数(如 getInt(), getString() 等)按索引或名称检索各列的具体数值; ```java List<User> userList = new ArrayList<>(); while (rs.next()) { // 移动指针到下一个结果集条目 int id = rs.getInt("id"); String name = rs.getString(2); // 可以通过列名也可以通过序号获取 int age = rs.getInt("age"); User user = new User(id, name, age); userList.add(user); } ``` 对于大型数据集而言,考虑到内存占用等因素,在某些场景下可能更适合采用流式处理方式或是利用缓存机制,比如可以考虑使用 `OracleCachedRowSet` 类型的对象[^2]。 #### 关闭资源 当完成所有的数据读取之后,应当及时释放所持有的数据库连接和其他相关资源,防止潜在的泄漏问题发生。Java7及以上版本支持自动管理资源的方式——即所谓的 Try-With-Resources 结构,上述例子也展示了这种方式的应用。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值