在 Java 中获取 SQL ResultSet 的大小

Sheeraz Gul 2024年2月15日
在 Java 中获取 SQL ResultSet 的大小

在 Java 中查找 SQL ResultSet 的大小可能很棘手,因为 SQL 不提供诸如 length()size() 之类的任何方法;它只提供了滚动数据库的方法,这也是基于数据库类型的。

本教程演示了一种使用任何数据库查找 SQL ResultSet 大小的通用方法。

在 Java 中查找 SQL ResultSet 的大小

首先,确定要查找 ResultSet 大小的数据库表并确定你的查询。我们创建了一个示例数据库,我们将通过选择查询中的所有项目来获得 ResultSet 的大小。

我们创建的数据库如下。

数据库

现在让我们尝试使用 Java 获取 ResultSet 的大小。我们使用 SqlLite 数据库,但该程序将适用于其他数据库,如 OracleMySQL 并正确建立连接。

请参阅 Java 示例:

package Delfstack;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

class Get_Result_Set {
  public static void main(String[] args) {
    Connection db_con = null;
    PreparedStatement db_Statement = null;
    ResultSet result_set = null;
    try {
      String db_path = "jdbc:sqlite:path-to-db/sample.db";
      db_con = DriverManager.getConnection(db_path);
      System.out.println("The Data Based Connection is established.");

      db_Statement = db_con.prepareStatement(
          "select * from Products", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);

      result_set = db_Statement.executeQuery();

      int Row_Count = 0;
      System.out.println("Display all the records in ResultSet object");
      System.out.println("Product_Id\tProduct_Name");
      while (result_set.next()) {
        System.out.println(
            result_set.getString("Product_Id") + "\t\t" + result_set.getString("Product_Name"));
        // Row count will get the length of result set
        Row_Count++;
      }
      System.out.println("Total number of rows in ResultSet object = " + Row_Count);

    } catch (SQLException e) {
      throw new Error("Problem", e);
    } finally {
      try {
        if (db_con != null) {
          db_con.close();
        }
      } catch (SQLException ex) {
        System.out.println(ex.getMessage());
      }
    }
  }
}

上面的代码计算了行的迭代次数,这将得到 ResultSet 的大小。查看程序的输出:

The Data Based Connection is established.
Display all the records in ResultSet object
Product_Id	Product_Name
1           Delfstack1
2           Delftstack2
3           Delftstack3
4           Delftstack4
5           Delftstack5
6           Delftstack6
7           Delftstack7
8           Delftstack8
9           Delftstack9
10          Delftstack10
The Size of the ResultSet object according to rows = 10

查询 select * from ProductsResultSet 的大小为 10。

作者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook