RowSet
实现的标准接口和基类。
请参见:
描述
接口摘要 | |
---|---|
CachedRowSet | 所有标准 CachedRowSet 实现都必须实现的接口。 |
FilteredRowSet | 所有标准 FilteredRowSet 实现都必须实现的标准接口。 |
JdbcRowSet | 所有标准 JdbcRowSet 实现都必须实现的标准接口。 |
Joinable | 1.0 背景 Joinable 接口提供了用于获取和设置匹配列的各种方法,匹配列是形成通过将 RowSet 对象添加到 JoinRowSet 对象所形成的 SQL JOIN 的基础。 |
JoinRowSet | JoinRowSet 接口提供了一种机制,用于将取自不同 RowSet 对象的相关数据组合到一个 JoinRowSet 对象中,该对象表示一个 SQL JOIN 。 |
Predicate | 为所有 FilteredRowSet 对象提供框架以描述其过滤器的标准接口。 |
WebRowSet | 所有 WebRowSet 的实现都必须实现的标准接口。 |
类摘要 | |
---|---|
BaseRowSet | 提供一个具有基本功能的 RowSet 对象的抽象类。 |
RowSetMetaDataImpl | 为设置和获取关于 RowSet 对象列的元数据信息的方法提供实现。 |
异常摘要 | |
---|---|
RowSetWarning | SQLException 的一个扩展,提供关于在 RowSet 对象上设置的数据库警告的信息。 |
JDBC RowSet
实现的标准接口和基类。此包包含了标准 RowSet
实现可实现或扩展的各种接口和类。
RowSet
接口。所有这 5 个接口都扩展了 JDBC 3.0 规范中描述的
RowSet 接口。可以预计随着此项技术的成熟,会出现其他更专用 JDBC
RowSet
类型的定义。以后的定义
应该 通过继承指定为子接口,与此规范中所用的方式类似。
注:此包中提供的接口定义构成了所有兼容 JDBC RowSet
实现的基础。供应商和打算提供其自己的兼容 RowSet
实现的高级开发人员应该特别注意在接口规范中详述的声明。
JdbcRowSet
- ResultSet 对象的包装器,使得该结果集用作 JavaBeansTM 组件成为可能。因此,JdbcRowSet 对象可以是一个 Bean,任何工具都可将其作为基于架构的组件部分来组装应用程序。JdbcRowSet 对象是连接的 RowSet
对象,也就是说,它必须使用启用 JDBC 技术的驱动程序(“JDBC 驱动程序”)来持续维持它与数据源的连接。此外,JdbcRowSet
对象提供完全可更新和可滚动的表格数据结构,这在 JDBC 3.0 规范中定义。
CachedRowSet
TM> - CachedRowSet 对象是一个 JavaBeansTM 组件,是可滚动的、可更新的、可序列化的,并且通常是与其数据源断开连接的。CachedRowSet 对象通常包含取自结果集的多个行,但是也可包含任何取自表格式文件(如电子表格)的行。CachedRowSet 实现必须使用 SyncFactory 管理和获得可插入的 SyncProvider
对象,以便在非连接 RowSet
对象和原始数据源之间提供同步。通常 SyncProvider
实现依靠 JDBC 驱动程序来连接特定数据源。javax.sql.rowset.spi
包规范中讨论了关于此机制的更多详细信息。
WebRowSet
- WebRowSet
对象是 CachedRowSet 的扩展,可以用合适的 XML 格式读取和写入 RowSet
对象。此类调用 XmlReader
对象(RowSetReader
接口的扩展)来读取 XML 格式的 rowset。调用 XmlWriter
对象(RowSetWriter
接口的扩展)来写入 XML 格式的 rowset。SyncFactory
以 SyncProvider
实现的形式提供 WebRowSet
对象所需的 reader 和 writer。为了确保使用合适的 XML,在 http://java.sun.com/xml/ns/jdbc/webrowset.xsd
中定义并发布了标准的通用 XML 模式。
FilteredRowSet
- FilteredRowSet 对象以编程和可扩展的方式提供过滤功能。有很多实例在 RowSet object
需要在其内容中提供过滤时无需放弃非连接环境,从而节省了必须创建到数据源的连接所带来的开销。从提供重量级的全部 SQL 查询能力,到可移植的组件,再到更轻量级的方法,这一需求的解决方案各有不同。FilteredRowSet
对象使用 Predicate
接口的实现,该接口可以在运行时定义一个过滤器。接着,FilteredRowSet
对象的任务是强行为入站 (inbound) 和出站 (outbound) 读写操作设置过滤器。也就是说,可以将所有过滤器认为是双向的。未定义任何标准过滤器;但是指定了足够的机制以允许实现任何所需的过滤器。
JoinRowSet
- JoinRowSet 接口描述了一种机制,根据这种机制可在两个或多个标准 RowSet
实现之间建立关系。可将任意数目的 RowSet 对象添加到 JoinRowSet 对象中,只要能够以 SQL JOIN 类似的方式将这些 RowSet 对象关联起来。根据定义,SQL JOIN 语句用于根据公共的属性将两个(或多个)关系数据库表中包含的数据组合起来。通过建立然后实施列匹配,JoinRowSet 对象可在 RowSet 实例之间建立关系,而无需触动原始数据源。 RowSet
实现的兼容实现
必须遵循此规范中描述的声明。为了与
Java Community Process 的条款保持一致,可以获得一个兼容性测试工具包(Test Compatibility Kit,TCK)的许可,以确保与规范保持兼容性。以下各段概述了一些实现标准 JDBC
RowSet
定义的入门知识。实现者还应参考
javax.sql.rowset.spi 包中的
实现者指南,以获得有关
SyncProvider
实现的指南。
BaseRowSet
类的职责 兼容的 JDBC RowSet
实现必须实现此包中指定的一个或多个标准接口,并且可以扩展 BaseRowSet
抽象类。例如,CachedRowSet
实现必须实现 CachedRowSet
接口并扩展 BaseRowSet
抽象类。BaseRowSet
类提供用于构建所有 RowSet
实现的标准架构,无论是存在于连接环境还是非连接环境中的 RowSet
对象。BaseRowSet 抽象类为所有 RowSet 实现提供其基本功能,包括与 JavaBeans 组件要求完全兼容的属性操纵和事件通知。例如,参考实现中提供的所有实现(包含在 com.sun.rowset 包中)都使用 BaseRowSet 作为其实现的基础。
下表展示了 BaseRowSet
抽象类提供的功能。
功能
详细信息
属性
提供标准的 JavaBeans 属性操纵机制,允许应用程序获得和设置 RowSet
的命令和属性值。有关标准RowSet
属性的更多信息,请参阅 javax.sql.RowSet 接口的文档(JDBC 3.0 规范中提供)。
事件通知
向已注册事件侦听器提供标准的 JavaBeans 事件通知。有关如何注册和处理由兼容实现所生成的标准 RowSet 事件的更多信息,请参阅 javax.sql.RowSetEvent 接口的文档(JDBC 3.0 规范中提供)。
用于 RowSet 对象命令的 Setter
为设置 RowSet 命令参数提供完整的设置方法集。
流
除了为流类型标记提供常量集外,还为流实例的存储提供了各种字段。
JdbcRowSet
描述一种必须始终连接到原始数据源的 RowSet
对象。JdbcRowSet
的实现应该确保此连接是由 JDBC 驱动程序唯一提供的。此外,作为 JdbcRowSet
接口的实现并因此在连接环境中运行的 RowSet
对象不使用 SyncFactory
来获取 RowSetReader
对象或 RowSetWriter
对象。由于存在可更新和可滚动的底层 ResultSet
实现,所以它们可以安全地依靠 JDBC 驱动程序来满足其需求。
非连接 RowSet
对象(如 CachedRowSet
对象)应该将连接管理委托给 SyncFactory
所提供的 SyncProvider
对象。要确保完全的非连接语义,所有非连接 RowSet
对象必须确保已关闭填充 RowSet
对象时所建立的与数据源的原始连接,以便垃圾回收器能够恢复和释放资源。SyncProvider
对象确保可维护关键的 JDBC 属性,从而在需要进行同步时可重新建立到数据源的连接。因此,非连接 RowSet
对象应该确保在 Connection
对象上没有保留任何其他引用。
RowsetMetaDataImpl
类是一个提供 RowSetMetaData 接口实现的实用工具类,它同时为连接和非连接 RowSet
对象的元数据提供标准的设置方法实现。所有实现都可随意使用此标准实现,但是并不要求必须如此。
RowSetWarning
类提供了可在 RowSet
实现上设置的警告。与 SQLWarning 对象类似,RowSetWarning
对象正常链接到其方法会导致抛出警告的那些对象。所有 RowSet
实现应该确保如果生成了警告,则会发生此链接操作,还要确保通过 JdbcRowSet
接口或 CachedRowSet
接口中定义的 getRowSetWarnings
方法可以获得这些警告。使用某个 getRowSetWarnings
方法获取警告后,可在 RowSetWarning
上调用其方法 getNextWarning
来获取所有可能链接到它的警告。如果返回了某个警告,则可以在其上调用 getNextWarning
并一直调用下去,直到再没有其他警告为止。
Joinable
接口同时为连接和非连接 RowSet
对象提供要在 SQL JOIN
操作中添加到 JoinRowSet
对象的功能。已经实现了 Joinable
接口的 RowSet
对象可以设置匹配列、获取匹配列或取消设置匹配列。然后 JoinRowSet
对象可以使用 RowSet
对象的匹配列作为添加 RowSet
对象的基础。