`
chenhua_1984
  • 浏览: 1246450 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

java获取resultset返回行

阅读更多

用 JDBC(包括 Oracle JDBC 扩展)时,没有直接的(即标准的)方法可以使用 ResultSet 或 RowSet 获得查询所返回的行数。但是可以通过很少几行代码使用 Scrollable ResultSet 或 Cached RowSet 来获得此结果。以下列出了可以使用的不同方法的详细内容。

  • 一种方法是在实际查询前执行 "SELECT COUNT(*)..."
    这意味着数据库引擎必须对相同的数据进行两次分析(一次用于计数,一次用于数据本身)。 

  • 第二种方法使用 JDBC 2.0:
    • 一种使用 Scrollable ResultSet
    • 另一种使用 Cached RowSet 与普通(不可滚动)ResultSet 的组合。

JDBC 方法允许我们获得查询的行数而不必扫描所有的行或执行单独的 SELECT COUNT(*)。移到 Scrollable ResultSet/Cached RowSet 的尾部并获取其位置(resultset.last()/cachedRowset.last() 和resultset.getRow()/cachedRowset.getRow()),即可完成所需的工作。RowSet 扩展了 ResultSet 接口,因此我们可以使用普通的 ResultSet(而不是可滚动的)。

使用 Scrollable ResultSet 的说明:

  • 如果 ResultSet 非常大,则 resultset.last() 有可能是非常费时的操作,因为它将使用服务器端的更多资源。因此,除非确实需要可滚动结果集,应避免使用这种方法。
  • Oracle JDBC 驱动程序将使用 resultset.getRow() 返回正确的计数。但是其他供应商的实现方法可能会由resultset.getRow() 返回零。

stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);

rs.last(); 


int rowcount = rs.getRow(); 

 

 

使用 Oracle JDBC Cached RowSet

OracleCachedRowSet ocrs = new OracleCachedRowSet();

ocrs.populate(rs);

ocrs.last(); 

int rowcount = ocrs.getRow();

if (ocrs != null) 
  ocrs.close();

 

分享到:
评论

相关推荐

    java数据库连接ResultSet

    Java 数据库连接中的 ResultSet 是一个非常重要的概念,它包含符合 SQL 语句中条件的所有行,并且提供了对这些行中数据的访问。ResultSet 通过一套 get 方法访问当前行中的不同列,例如 getInt、getString、getFloat...

    JAVA 版本ResultSet 转换为JAVABEAN的工具类

    在Java编程中,ResultSet是处理数据库查询结果的主要接口,它由Statement或PreparedStatement对象执行SQL查询后返回。而JavaBean是一种符合特定规范的Java类,通常用于封装数据,便于数据的传输和操作。当我们从...

    ResultSet对象获取数据的各种方法

    ### ResultSet对象获取数据的各种方法 在Java编程语言中,`ResultSet`对象是处理数据库查询结果的核心组件之一。它充当一个可滚动的、可更新的数据表,用于存储从数据库执行SQL语句后返回的结果集。本文将详细介绍...

    ResultSet 转为listmap

    在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用,我们需要将 ResultSet 转为 List,以便于后续的数据处理和展示。 下面是将 ...

    如何从 Java 存储过程将 JDBC ResultSet 作为 Ref Cursor 返回.doc

    在Oracle9i之前的版本,直接从Java存储过程返回ResultSet是不被支持的,因为缺乏ResultSet到REF CURSOR的映射机制。然而,Oracle9i引入了这种映射,使得Java存储过程能够返回ResultSet或作为OUT参数传递。尽管如此,...

    java中ResultSet遍历数据操作

    在 Java 中,我们可以使用 ResultSet 对象来获取数据库表中每条记录的列值。首先,我们需要执行一个 SQL 语句来获取 ResultSet 对象,然后我们可以使用 next() 方法来遍历每一条记录,并使用 getString() 方法来获取...

    通过反射从数据库返回集合ResultSet中得到实体对象的list集合

    通过反射从数据库返回集合ResultSet中得到实体对象的list集合

    java resultset常用方法

    在Java的JDBC编程中,`ResultSet`接口用于表示从数据库查询中获取的结果集。它提供了多种方式来处理这些数据,并且根据不同的应用场景,支持不同类型的ResultSet。 #### 二、ResultSet 类型详解 1. **ResultSet....

    ResultSet

    11. 其他特性:ResultSet还支持定位特定行(absolute()和relative()方法),检查当前行是否被修改(rowUpdated()方法),以及获取当前行号(getRow()方法)等。 总结来说,ResultSet是Java数据库编程的核心组件,...

    java sql ResultSet 之getRow()用法说明

    next() 方法在 ResultSet 对象没有一行记录时返回 false,因此可以在 while 循环中使用它来遍历结果集,也可以利用该方法判断结果集是否为空。 getRow() 方法是 ResultSet 对象的一个重要方法,它可以返回当前指针...

    JdbcSql.rar_java resultset_jtable

    2. **ResultSet**: `ResultSet`是执行SQL查询后返回的结果集,它是一个接口,用于存储查询结果的行。我们可以通过迭代`ResultSet`来获取每一行的数据。每个结果行都是一个对象,可以使用`next()`方法移动到下一行,`...

    Java获取Oracle存储过程返回的Cursor

    本篇文章将详细介绍如何在Java中通过ODBC6驱动获取Oracle存储过程返回的Cursor。 首先,我们需要创建一个Oracle存储过程,该过程定义了一个名为CURSOR_RESULT的REF CURSOR类型。在提供的示例中,我们有一个名为TEST...

    ResultSet的属性

    ResultSet是Java数据库连接(JDBC)中的一个重要接口,它用于存储和检索数据库查询结果。当执行SQL查询后,结果会被封装成ResultSet对象,允许我们逐行遍历并访问查询返回的数据。在处理ResultSet时,了解其属性和元...

    javaResultSet常用方法.pdf

    Java中的`ResultSet`是JDBC(Java Database Connectivity)API的核心组件之一,用于处理数据库查询返回的结果。`ResultSet`对象是一个接口,它表示从数据库查询中返回的数据集合,这些数据通常以表格形式存在,每行...

    java如何获得数据库表中各字段的字段名

    ### Java如何获得数据库表中各字段的字段名 在Java编程中,经常需要与数据库进行交互,例如查询、更新或删除等操作。其中一项常见需求是获取数据库表中的所有字段名称。这通常在动态生成报表或者需要根据数据库结构...

    支持ResultSet的JTable

    `ResultSet`是Java数据库连接(JDBC)API的一部分,用于存储从SQL查询返回的结果集。 标题"支持ResultSet的JTable"暗示我们将探讨如何将`ResultSet`对象的数据绑定到`JTable`,以便在GUI中实时显示查询结果。通常,...

    poi根据ResultSet到处Excle源码

    在Java中,ResultSet是执行SQL查询后返回的结果集,它提供了遍历和访问数据库查询结果的方法。将ResultSet转换为Excel,首先需要创建一个HSSFWorkbook对象(对于.xls文件)或XSSFWorkbook对象(对于.xlsx文件),...

    java存储过程返回数据集

    本文将详细介绍如何创建一个Oracle存储过程来返回数据集,并展示如何在Java应用程序中调用这个存储过程以获取结果。 #### 存储过程创建与调用示例 首先,我们需要在Oracle数据库端定义一个包和过程来处理数据集的...

    java行转列的例子

    - 数据库查询结果通常以ResultSet形式返回,需要遍历ResultSet并将其转换为Java对象。 6. 页面展示: - 转换后的数据可能需要在网页上显示,这可能涉及到JSP、Thymeleaf或其他模板引擎。 - 使用ModelAndView或...

Global site tag (gtag.js) - Google Analytics