`
阅读更多

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 数据库中获取的数据。

分享到:
评论

相关推荐

    Java6RowSet使用完全剖析

    本文内容包括:RowSet简介类继承结构实验环境使用CachedRowSet使用WebRowSet使用FilteredRowSet使用JdbcRowSet使用JoinRowSet结束语下载参考资料C#提供了DataSet,可以将数据源中的数据读取到内存中,进行离线操作,...

    sun.jdbc.rowset的jar包

    sun.jdbc.rowset的jar包,2000年的老包。不过有些老项目需要。 包括sun.jdbc.rowset.CachedRowSet。

    JdbcRowSet.rar_jdbcrowset

    使用JdbcRowSet和CachedRowSet的例子,大家一起参考学习

    Java数据库编程宝典2

    第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创建表 ...

    Java数据库编程宝典4

    第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创建表 ...

    Java数据库编程宝典1

    第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创建表 ...

    Java数据库编程宝典3

    第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创建表 ...

    oracle10g jdbc 驱动(三)ocrs12.jar

    引入了javax.sql.rowset接口, 如CachedRowSet 和 WebRowSet. 可以在 JDK 1.2, 1.3, 和 1.4下使用.

    oracle10g jdbc 驱动 ocrs12.jar

    包含ocrs12.jar 引入了javax.sql.rowset接口, 如CachedRowSet 和 WebRowSet. 可以在 JDK 1.2, 1.3, 和 1.4下使用.

    教学、学习必备:jsp教案

    第0章 JSP程序设计课程介绍 4 第1章 JSP简介 5 1.1 软件编程体系 5 1.1.1软件编程体系简介 5 ...7.7基于CACHEDROWSET分页显示记录 211 7.8常见数据库的连接 218 7.8.1连接Oracle数据库 218 7.8.2连接MySql数据库 220

    JDBC API教程与参考手册part4

    此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 本书对JDBCAPI中的每个类和接口(从Array到XADataSource)都提供了简洁但完整的信息。每个类不但包含用例的概述...

    JDBC API教程与参考手册part3

    此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 本书对JDBCAPI中的每个类和接口(从Array到XADataSource)都提供了简洁但完整的信息。每个类不但包含用例的概述...

    JDBC API教程与参考手册part2

    此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 本书对JDBCAPI中的每个类和接口(从Array到XADataSource)都提供了简洁但完整的信息。每个类不但包含用例的概述...

    JSP 程序设计从入门到精通 PDF 教程

     2.5 JSP中Session的使用 34  2.6 JSP中forward的使用 36  2.7 JSP运行时错误处理与应该注意的六个常见问题 37  2.8 JSP小实例 38  2.8.1实例1(在JSP中定义函数) 38  2.8.2实例2(获取各种CGI环境变量...

    JSP高级编程          

    10.3 CachedRowSet 包 10.4 数据库连接缓冲池 10.5 JNDI 和RowSet 10.6 本章小结 第四部分 JSP 网络程序设计 第11 章 JSP 网络程序开发 11.1 配置服务器 11.2 SMTP 服务 11.3 FTP 服务 11.4 News 服务 11.5 Java ...

    JSP高级编程(全)

    10.3 CachedRowSet 包 10.4 数据库连接缓冲池 10.5 JNDI 和RowSet 10.6 本章小结 第四部分 JSP 网络程序设计 第11 章 JSP 网络程序开发 11.1 配置服务器 11.2 SMTP 服务 11.3 FTP 服务 11.4 News 服务 11.5 Java ...

    jdk1.4中无需修改的rowset.jar

    在jdk1.5上用spring管理数据,部署到jdk1.4上,说CachedRowSet有问题,寻遍方法,最后得一rowset对jdk1.4里的进行覆盖,得的rowset.jar还需要进行修改,于是修改好,放到项目的lib中,成功!想到需要帮助的人们,...

    Ross Group Rowset-开源

    CachedRowset 实现扩展了参考实现以包含一些所需的新功能:即使某些列为空,insertRow() 也能工作,setReadOnly(column),addColumnd()。 此外,我们将构建实施。

Global site tag (gtag.js) - Google Analytics