Package javax.sql.rowset
RowSet
实现。此包含有标准RowSet
实现要么实现要么扩展的接口和类。
目录
1.0 包规范
此包指定了五个标准的JDBCRowSet
接口。所有五个接口都扩展了JDBC 3.0规范中描述的RowSet
接口。预计随着技术的成熟,会出现更多专门的JDBC RowSet
类型的定义。未来的定义应该被指定为使用类似于本规范中使用的继承的子接口。
注意:此包中提供的接口定义构成了所有符合JDBC RowSet
实现的基础。打算提供自己符合的RowSet
实现的供应商和更高级的开发人员应特别注意规范接口中详细说明的断言。
2.0 标准RowSet定义
JdbcRowSet
- 包装了一个ResultSet
对象,使得可以将结果集作为JavaBeans组件使用。因此,JdbcRowSet
对象可以是任何工具作为组件化架构的一部分组装应用程序的Bean。一个JdbcRowSet
对象是一个连接的RowSet
对象,也就是说,它必须使用JDBC技术启用的驱动程序(“JDBC驱动程序”)不断地维护与数据源的连接。此外,JdbcRowSet
对象提供了一个完全可更新和可滚动的表格数据结构,如JDBC 3.0规范中定义。-
CachedRowSet
- 一个CachedRowSet
对象是一个可滚动、可更新、可序列化的JavaBeans组件,通常与其数据源分离。一个CachedRowSet
对象通常包含来自结果集的行,但也可以包含来自任何具有表格格式的文件的行,例如电子表格。CachedRowSet
实现必须使用SyncFactory
来管理和获取可插拔的SyncProvider
对象,以提供断开的RowSet
对象与原始数据源之间的同步。通常,SyncProvider
实现依赖于JDBC驱动程序来获取与特定数据源的连接。有关此机制的更多详细信息,请参阅javax.sql.rowset.spi
包规范。 WebRowSet
- 一个WebRowSet
对象是CachedRowSet
的扩展,可以以格式良好的XML格式读取和写入RowSet
对象。此类调用一个XmlReader
对象(RowSetReader
接口的扩展)以XML格式读取行集。它调用一个XmlWriter
对象(RowSetWriter
接口的扩展)以XML格式写入行集。WebRowSet
对象所需的读者和写者由SyncFactory
以SyncProvider
实现的形式提供。为了确保格式良好的XML使用,定义并发布了一个标准的通用XML模式,网址为http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd
。FilteredRowSet
- 一个FilteredRowSet
对象以编程和可扩展的方式提供过滤功能。有许多情况下,RowSet
对象需要在不牺牲断开环境的情况下提供其内容的过滤,从而节省创建到数据源的连接的费用。解决此需求的解决方案从提供重量级全面的SQL查询功能、到可移植组件、到更轻量级的方法等各种。一个FilteredRowSet
对象使用Predicate
接口的实现,该接口可能在运行时定义过滤器。反过来,FilteredRowSet
对象负责强制执行双向读取和写入操作的设置过滤器。也就是说,所有过滤器都可以被视为双向的。没有定义标准过滤器;但是,已经指定了足够的机制来允许实现任何所需的过滤器。JoinRowSet
-JoinRowSet
接口描述了建立两个或多个标准RowSet
实现之间关系的机制。可以向JoinRowSet
对象添加任意数量的RowSet
对象,只要这些RowSet
对象可以以SQLJOIN
的方式相关联。根据定义,SQLJOIN
语句用于基于公共属性合并两个(或更多)关系数据库表中包含的数据。通过建立然后强制执行列匹配,JoinRowSet
对象在不需要触及原始数据源的情况下建立RowSet
实例之间的关系。
3.0 实现者指南
符合JDBCRowSet
实现的实现者必须遵循本规范中描述的断言。根据Java社区流程的条款,可以获得测试兼容性工具包(TCK)的许可,以确保与规范的兼容性。以下段落概述了标准JDBC RowSet
定义的实现者的一些起点。实现者还应参考实现者指南中的内容javax.sql.rowset.spi包中关于SyncProvider
实现的指导方针。
- 3.1 构造函数
所有
RowSet
实现必须提供一个无参数的构造函数。 - 3.2
BaseRowSet
类的作用符合JDBC的
RowSet
实现必须实现此包中指定的一个或多个标准接口,并可以扩展BaseRowSet
抽象类。例如,CachedRowSet
实现必须实现CachedRowSet
接口并扩展BaseRowSet
抽象类。无论RowSet
对象存在于连接还是断开的环境中,BaseRowSet
类提供了标准的架构,所有RowSet
实现都应该基于此构建。BaseRowSet
抽象类提供了任何RowSet
实现所需的基本功能,包括与JavaBeans组件要求完全符合的属性操作和事件通知。例如,参考实现中提供的所有实现(包含在com.sun.rowset
包中)都使用BaseRowSet
类作为其实现的基础。以下表格说明了
BaseRowSet
抽象类提供的功能。BaseRowSet
中的功能功能 详情 属性 提供标准的JavaBeans属性操作机制,允许应用程序获取和设置 RowSet
命令和属性值。有关标准RowSet
属性的更多详细信息,请参考javax.sql.RowSet
接口的文档(在JDBC 3.0规范中可用)。事件通知 提供标准的JavaBeans事件通知给已注册的事件监听器。有关如何注册和处理符合实现生成的标准RowSet事件的更多详细信息,请参考 javax.sql.RowSetEvent
接口的文档(在JDBC 3.0规范中可用)。为RowSet对象的命令设置器 提供一套完整的设置器方法,用于设置RowSet命令参数。 流 提供用于存储流实例的字段,同时提供一组用于流类型指定的常量。 - 3.3 连接的RowSet要求
JdbcRowSet
描述了一个RowSet
对象,它必须始终连接到原始数据源。实现JdbcRowSet
的对象应确保此连接仅由JDBC驱动程序提供。此外,实现JdbcRowSet
接口并因此在连接环境中运行的RowSet
对象不使用SyncFactory
来获取RowSetReader
对象或RowSetWriter
对象。它们可以安全地依赖于JDBC驱动程序通过底层可更新和可滚动的ResultSet
实现来满足其需求。 - 3.4 断开的RowSet要求
一个断开的
RowSet
对象,例如CachedRowSet
对象,应该将连接管理委托给SyncFactory
提供的SyncProvider
对象。为了确保完全断开的语义,所有断开的RowSet
对象必须确保用于填充RowSet
对象的原始连接已关闭,以允许垃圾回收器回收和释放资源。SyncProvider
对象确保关键的JDBC属性得以维护,以便在需要同步时重新建立与数据源的连接。因此,断开的RowSet
对象应确保Connection
对象上没有多余的引用。 - 3.5 RowSetMetaDataImpl的作用
RowsetMetaDataImpl
类是一个实用类,提供了RowSet
对象的元数据的实现,为连接和断开的RowSet
对象提供了标准的setter方法实现。所有实现都可以使用此标准实现,但不是必须这样做。 - 3.6 RowSetWarning类
RowSetWarning
类提供了可以设置在RowSet
实现上的警告。类似于SQLWarning
对象,RowSetWarning
对象会静默链接到引发警告的方法的对象上。所有RowSet
实现应该确保如果生成了警告,则进行此链接,并确保可以通过JdbcRowSet
接口或CachedRowSet
接口中定义的getRowSetWarnings
方法获取警告。在使用getRowSetWarnings
方法之一检索警告后,可以调用RowSetWarning
方法getNextWarning
来检索可能链接在其上的任何警告。如果返回了一个警告,则可以在其上调用getNextWarning
,依此类推,直到没有更多的警告。 - 3.7 Joinable接口
Joinable
接口为连接和断开的RowSet
对象提供了在SQLJOIN
操作中添加到JoinRowSet
对象的能力。实现了Joinable
接口的RowSet
对象可以设置匹配列、检索匹配列或取消匹配列。然后,JoinRowSet
对象可以使用RowSet
对象的匹配列作为添加RowSet
对象的基础。 - 3.8 RowSetFactory接口
必须提供
RowSetFactory
实现。
4.0 相关规范
5.0 相关文档
-
ClassDescription一个抽象类,提供了一个具有基本功能的
RowSet
对象。所有标准CachedRowSet
实现必须实现的接口。所有标准FilteredRowSet
实现必须实现的标准接口。所有标准JdbcRowSet
实现必须实现的标准接口。1.0 背景JoinRowSet
接口提供了一种将来自不同RowSet
对象的相关数据组合成一个JoinRowSet
对象的机制,该对象表示SQLJOIN
。提供了所有FilteredRowSet
对象描述其过滤器的框架的标准接口。定义了用于获取不同类型RowSet
实现的工厂的实现的接口。提供了设置和获取关于RowSet
对象列的元数据信息的方法的实现。一个工厂API,使应用程序能够获取可用于创建不同类型RowSet
实现的RowSetFactory
实现。提供了关于设置在RowSet
对象上的数据库警告的信息的SQLException
的扩展。所有WebRowSet
实现必须实现的标准接口。