ResultSet,RowSet
获得可滚动的结果集:
Statement stat = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY
);
获得可更新的结果集:
Statement stat = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATE
);
ResultSet中的Type取值:
TYPE_FORWARD_ONLY 不可滚动
TYPE_SCROLL_INSENSITIVE 结果集可滚动,但对数据库变化不敏感
TYPE_SCROLL_SENSITIVE 结果集可滚动,但对数据库变化敏感
ResultSet中的Concurrency取值:
CONCUR_READ_ONLY 结果集不能用于更新数据库
CONCUR_UPDATEABLE 结果集可以用于更新数据库
元数据的概念
通过java.sql.DatabaseMetaData可以获取数据库结构和表的详细信息。
可滚动的结果集虽然强,但交换过程,必须始终与数据库保持连接。如果一个操作要持续很久,则占用了宝贵的数据库连接资源。这时可以考虑使用行集,即RowSet。
RowSet继承自ResultSet,但不必始终保持与数据库的连接。
bwl 注:
- rs.absolute(1),rs.first(),rs.last()需要Type为TYPE_SCROLL_INSENSITIVE或者TYPE_SCROLL_SENSITIVE,如果没有声明则会抛出异常;
- rs.next()跟Type没有关系;
分享到:
相关推荐
2. **ResultSet**: `ResultSet`是执行SQL查询后返回的结果集,它是一个接口,用于存储查询结果的行。我们可以通过迭代`ResultSet`来获取每一行的数据。每个结果行都是一个对象,可以使用`next()`方法移动到下一行,`...
Java-JDBC【之】实现ORM,结果集映射实体类(ResultSet、注解、反射) 1.ORM实现思路 2.@Table、@Column、标识实体类 2.1.创建注解 @Table、@Column 2.2.标识实体类 2.3.数据库表 3.结果集解析,注解加反射填充实体...
Rowset是JDBC中的一种接口,它实现了ResultSet接口,并增加了额外的功能,如缓存、同步和事件监听。它允许数据被存储在内存中,即使没有与数据库的连接,也可以对这些数据进行操作,这提高了程序的效率和灵活性。 ...
JDBC规范定义了几种不同类型的RowSet: 1. **CachedRowSet**:最常用的类型,数据存储在内存中,适合小到中等大小的数据集。它不依赖于任何数据库连接,可以进行离线操作。 2. **JoinRowSet**:允许将多个RowSet...
JDBC提供了一种标准的方式来访问各种数据库,包括SQL查询的执行、结果集(ResultSet)的处理等。ResultSet是JDBC中用于存储查询结果的一个接口,它表示从数据库中检索的数据集。而REF CURSOR则是PL/SQL(Oracle...
Jsp将结果集ResultSet查询数据用表格显示出来
ROWSET是Java数据库连接(JDBC)中的一个重要概念,它是一种可以存储结果集的数据结构,类似于ResultSet,但具有更高级别的功能和效率。在Java编程中,ROWSET允许程序员在离线环境中处理数据库数据,这意味着它可以...
RowSet,全称JDBC RowSet,是一种基于JDBC的数据容器,它是ResultSet接口的一个子类。RowSet的核心价值在于它具有离线和同步的能力,这使得它在Web应用程序和分布式环境中表现出色。与传统的ResultSet相比,RowSet...
在此示例中,在读取结果集时,将数据从 `ISO-8859-1` 编码转换回 `GBK` 编码,确保了数据能够在本地应用中被正确显示。 #### 总结 综上所述,当使用 JDBC 连接 Oracle 数据库并遇到字符集不同导致的乱码问题时,...
现在回到问题本身,当出现"结果集已耗尽"的异常,通常有以下几种情况: 1. **循环遍历结果集时未正确检查结束条件**:最常见的情况是,程序员在for-each或while循环中遍历结果集,但没有在循环条件中检查`ResultSet...
JDBC通信原理 JDBC驱动类型 JDBC构成 JDBC程序5步走 滚动的结果集 可更新的结果集 SQL数据类型对应的Java类型 事务及批量处理 行集、连接池、LDAP
在SQL中,结果集的光标通常是有名字的,如果数据库支持定位更新或定位删除,那么进行这类操作时,需要使用光标的名称。`ResultSet`提供了`getCursorName()`方法来获取光标名称,但这并不意味着所有数据库管理系统...
为了避免因只进结果集引发的异常,可以采取以下几种策略: #### 1. 修改查询类型 最直接的方法是在创建`Session`时指定查询结果集为可滚动类型(scrollable)。这可以通过在Hibernate配置文件中设置`hibernate....
在 Java 中,使用 JDBC 连接数据库时,通常会返回一个 ResultSet 对象,该对象包含了查询结果集的所有记录。为了方便数据处理和使用,我们需要将 ResultSet 转为 List,以便于后续的数据处理和展示。 下面是将 ...
Java-JDBC【之】数据类型、封装JDBCUtil、封装通用增删改、ResultSet与ResultSetMetaData、查询结果集映射Map与ListMap 1.数据类型 2.封装通用增删改 2.1.封装JDBCUtil 2.2.封装Dao通用增删改 2.3.测试 3.ResultSet...
6. 结果集的状态:ResultSet有三种状态:未初始化、已移动到下一行和结束。调用next()会改变其状态,且一旦到达末尾,无法回溯到前面的行。 7. 命令类型:ResultSet的行为取决于执行的SQL命令类型。对于SELECT语句...
Java Database Connectivity(JDBC)是Java编程语言中用于与各种数据库进行交互的一种标准接口。由Sun Microsystems(现已被Oracle收购)开发并维护,JDBC提供了一组API,使得Java开发者能够方便地执行SQL语句,操作...
封装ResultSet结果集
java组件开发(15) JDBC操作工具类与ResultSet数据
在JDBC中,这通常是因为一次性加载过多的结果集到内存中导致的。例如,当执行SELECT * FROM table_name这样的查询时,如果表中的记录非常多,那么所有的结果集都会被加载到内存中,从而可能导致内存溢出。 #### 二...