快速业务通道

Java 6 RowSet使用完全剖析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

Java 6 RowSet使用完全剖析

时间:2011-02-15 IBM 徐睿智 刘威

C# 提供了 DataSet,可以将数据源中的数据读取到内存中,进行离线操作,然后再同步到数据源。同样,在 Java 中也提供了类似的实现,即 RowSet。javax.sql.rowset 包下,定义了五个不同的 RowSet 接口,供不同的场合使用。本文将分别对这五个 RowSet 的使用场合以及详尽用法进行介绍,并且描述使用中可能出现的问题,以提醒读者在实际使用时绕开这些问题。

RowSet 简介

javax.sql.rowset 自 JDK 1.4 引入,从 JDK 5.0 开始提供了参考实现。它主要包括 CachedRowSet,WebRowSet,FilteredRowSet,JoinRowSet 和 JdbcRowSet。 除了 JdbcRowSet 依然保持着与数据源的连接之外,其余四个都是 Disconnected RowSet。

相比较 java.sql.ResultSet 而言,RowSet 的离线操作能够有效的利用计算机越来越充足的内存,减轻数据库服务器的负担,由于数据操作都是在内存中进行然后批量提交到数据源,灵活性和性能都有了很大的提高。RowSet 默认是一个可滚动,可更新,可序列化的结果集,而且它作为 JavaBeans,可以方便地在网络间传输,用于两端的数据同步。

类继承结构

RowSet 继承自 ResultSet,其他五个 RowSet 接口均继承自 RowSet。下图是它们的继承关系。

图 1. 继承结构图

Java 6 RowSet使用完全剖析 - 编程入门网

表 1. RowSet 接口说明

CachedRowSet 最常用的一种 RowSet。其他三种 RowSet(WebRowSet,FilteredRowSet,JoinRowSet)都是直接或间接继承于它并进行了扩展。它提供了对数据库的离线操作,可以将数据读取到内存中进行增删改查,再同步到数据源。可串行化,可作为 JavaBeans 在网络间传输。支持事件监听,分页等特性。
WebRowSet 继承自 CachedRowSet,并可以将 WebRowSet 写到 XML 文件中,也可以用符合规范的 XML 文件来填充 WebRowSet。
FilteredRowSet 通过设置 Predicate(在 javax.sql.rowset 包中),提供数据过滤的功能。可以根据不同的条件对 RowSet 中的数据进行筛选和过滤。
JoinRowSet 提供类似 SQL JOIN 的功能,将不同的 RowSet 中的数据组合起来。目前在 Java 6 中只支持内联(Inner Join)。
JdbcRowSet 对 ResultSet 的一个封装,使其能够作为 JavaBeans 被使用,是唯一一个保持数据库连接的 RowSet。

Java 6 RowSet使用完全剖析(2)

时间:2011-02-15 IBM 徐睿智 刘威

实验环境

本文示例的实验环境如下:

Java 环境:Sun JDK 6.0

数据库:derby-10.3.1.4

数据库名:TESTDB

数据库用户名及密码:均使用 derby 默认用户名和密码。

表及测试数据:创建两个表:CUSTOMERS 和 ORDERS,并分别插入测试数据。

示例代码以附件形式提供 下载。

表 2. 表 CUSTOMERS

ID NAME REMARK
1 Tom Tom is VIP
2 Jim null

表 3. 表 ORDERS

ID USER_ID PRODUCT
1 1 Book
2 1 Computer
3 2 Phone

使用 CachedRowSet

填充 CachedRowSet 的两种方式

CachedRowSet 提供了两个用来获取数据的方法,一个是

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号