1向瘦客户端传递数据
使用 CachedRowSet
对象的主要原因之一是要在应用程序的不同组件之间传递数据。因为 CachedRowSet
对象是可序列化的,所以可使用它(举例来说)将运行于服务器环境的企业 JavaBeans 组件执行查询的结果通过网络发送到运行于 web 浏览器的客户端。
由于 CachedRowSet
对象是非连接的,所以和具有相同数据的 ResultSet
对象相比更为简洁。因此,它特别适于向瘦客户端(如 PDA)发送数据,这种瘦客户端由于资源限制或安全考虑而不适于使用 JDBC 驱动程序。所以 CachedRowSet
对象可提供一种“获取各行”的方式而无需实现全部 JDBC API。
2 滚动和更新
CachedRowSet
对象的第二个主要用途是为那些本身不提供滚动和更新的 ResultSet
对象提供这些功能。换句话说,当 DBMS 不提供对滚动和更新的完全支持时,可使用 CachedRowSet
对象扩充启用 JDBC 技术的驱动程序(以下称为“JDBC 驱动程序”)的功能。要使不可滚动和只读的 ResultSet
对象变得可滚动和可更新,程序员只需创建一个使用该 ResultSet
对象的数据所填充的 CachedRowSet
对象即可。以下代码片断演示了这一过程,其中 stmt
是一个 Statement
对象。
ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEES");
CachedRowSetImpl crs = new CachedRowSetImpl();
crs.populate(rs);
现在对象 crs
与对象 rs
一样,也包含了取自表 EMPLOYEES
的数据。不同的是 crs
的指针可以向前、向后移动,或者移动到特定行,即使 rs
的指针只能向前移动也是如此。此外,即使 rs
是不可更新的,crs
也将是可更新的,因为在默认情况下,CachedRowSet
对象是可滚动和可更新的。
总之,可将 CachedRowSet
对象简单地看成是一个非连接的行集合,这些行将缓存在数据源外部。由于它比较小并且是可序列化的,所以它可以轻松地通过导线发送,并且非常适合于向瘦客户端发送数据。但是 CachedRowSet
对象也有局限性:它的大小限制在它一次可在内存中存储的数据量范围内。
3 获得通用数据访问
CachedRowSet
类的另一个优势在于它能够从关系数据库以外各种数据源检索并存储数据。可以实现 rowset 的 reader 读取任何表格数据源(包括电子表格或平面文件)的数据,并用该数据填充其 rowset。因为 CachedRowSet
对象及其元数据都可以从头创建,所以充当 rowset 工厂的组件可以使用此功能来创建一个包含非 SQL 数据源数据的 rowset。但是,大部分情况下,希望 CachedRowSet
对象包含使用 JDBC API 从 SQL 数据库中获取的数据。
分享到:
相关推荐
sun.jdbc.rowset的jar包,2000年的老包。不过有些老项目需要。 包括sun.jdbc.rowset.CachedRowSet。
通过学习这个例子,开发者可以深入理解`JdbcRowSet`和`CachedRowSet`的使用场景和操作流程,提升在Java环境中处理数据库数据的能力。同时,这也是一种遵循JDBC最佳实践的方式,有助于编写更高效、更易于维护的代码。
- 将`ResultSet`传递给`CachedRowSet`,使用`acceptChanges`或`commit`方法提交更改。 - 可以使用`RowSetMetaData`来设置列信息,`RowSetEvent`和`RowSetListener`来监听ROWSET的变化。 ROWSet教程文件可能包含...
在给定的部分内容中,提到了使用`CachedRowSet`来操作数据库。`CachedRowSet`是Sun Microsystems为解决JDBC性能问题而引入的一种技术,它允许在内存中缓存ResultSet数据,从而可以在断开数据库连接的情况下对数据...
本文探讨了非连接行集在基于Java的B_S系统中的应用,介绍了一种基于JD BC 3.0的非连接行集接口CachedRowSet,利用该接口实例化的非连接行集对象,特别适合用于MVC模型中的表现层的开发。这种非连接行集可以在短暂...
第2部分 在两层客户/服务器结构中使用JDBC和SQL 第5章 使用JDBC和SQL创建表 5.1 创建数据库 5.2 使用表 5.2.1 记录和字段、行和列 5.2.2 SQL数据类型 5.2.3 完整性约束 5.3 创建表 5.4 使用JDBC创建表 ...
第2部分 在两层客户/服务器结构中使用JDBC和SQL 第5章 使用JDBC和SQL创建表 5.1 创建数据库 5.2 使用表 5.2.1 记录和字段、行和列 5.2.2 SQL数据类型 5.2.3 完整性约束 5.3 创建表 5.4 使用JDBC创建表 ...
第2部分 在两层客户/服务器结构中使用JDBC和SQL 第5章 使用JDBC和SQL创建表 5.1 创建数据库 5.2 使用表 5.2.1 记录和字段、行和列 5.2.2 SQL数据类型 5.2.3 完整性约束 5.3 创建表 5.4 使用JDBC创建表 ...
第2部分 在两层客户/服务器结构中使用JDBC和SQL 第5章 使用JDBC和SQL创建表 5.1 创建数据库 5.2 使用表 5.2.1 记录和字段、行和列 5.2.2 SQL数据类型 5.2.3 完整性约束 5.3 创建表 5.4 使用JDBC创建表 ...
这个接口包含了一些预定义的接口和类,如`CachedRowSet`和`WebRowSet`,它们为数据库操作提供了非常灵活和高效的方式。 1. **CachedRowSet**: 这是一个实现了滚动和遍历能力的接口,允许将结果集保存在内存中,即使...
- CachedRowSet:这是最基础的Rowset类型,它可以将数据缓存到内存中,支持离线操作。 - JoinRowSet:允许合并多个Rowset,实现跨表查询。 - FilteredRowSet:提供了基于谓词的过滤功能,可以筛选满足特定条件的...
- RowSet:介绍了CachedRowSet和JdbcRowSet的使用。 - 分布式事务支持:讲述了如何使用XA数据源、XA连接和XAResource来管理分布式事务。 ### 第5章 .NETDataProvider编程指南 - 数据类型:概述了.NET环境中使用的...
引入了javax.sql.rowset接口, 如CachedRowSet 和 WebRowSet. 可以在 JDK 1.2, 1.3, 和 1.4下使用.
1. CachedRowSet:这是最常见的RowSet实现,它可以在断开与数据库连接后保存和修改数据。CachedRowSet将数据存储在内存中,可以进行滚动、查找和编辑,然后再同步回数据库。 2. JdbcRowSet:它与数据库保持实时连接...
第七章涉及数据库操作,主要以SQL Server 2000为例,学习JDBC的使用,包括数据库连接、查询、更新、添加和删除操作,以及预处理语句和CachedRowSet分页显示技术。此外,还概述了连接Oracle和MySQL数据库的方法。 第...
下面是一个使用 `CachedRowSet` 的简单示例,该示例演示了如何从 SQL Server 数据库中获取数据,并在关闭数据库连接后继续进行数据处理。 ```java import java.sql.Connection; import java.sql.DriverManager; ...
- **6.2.3 CachedRowSet 类**:这部分讨论了CachedRowSet类的特点和使用方法。 ##### 6.3 数据库连接缓冲池 - 这部分介绍了数据库连接缓冲池的概念,以及如何使用连接池来提高数据库访问效率。 ##### 6.4 JNDI 和...
- **行集**:`javax.sql.rowset`包提供了一系列用于离线处理数据的类,如`CachedRowSet`。 - **分布式事务**:在分布式环境中协调多个资源(如数据库和消息队列)的事务管理。 #### 六、应用于JDBC的其他企业API -...