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