包 javax.sql.rowset


javax.sql.rowset
JDBC RowSet 实现的标准接口和基类。此包包含标准 RowSet 实现实现或扩展的接口和类。

目录

1.0 封装规范

这个包指定了五个标准的 JDBC RowSet 接口。这五个都扩展了 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 对象所需的读写器由 SyncFactorySyncProvider 实现的形式提供。为了确保格式正确的 XML 使用,在 http://xmlns.jcp.org/xml/ns//jdbc/webrowset.xsd 定义并发布了一个标准的通用 XML 模式。
  • FilteredRowSet - FilteredRowSet 对象以编程和可扩展的方式提供过滤功能。在很多情况下,RowSet object 需要在不牺牲断开连接的环境的情况下对其内容进行过滤,从而节省必须创建与数据源的连接的费用。这种需求的解决方案从提供重量级的全面 SQL 查询能力到可移植的组件,再到更轻量级的方法。 FilteredRowSet 对象使用 Predicate 接口的实现,它可能在运行时定义过滤器。反过来,FilteredRowSet 对象的任务是为入站和出站读写操作执行设置过滤器。也就是说,所有过滤器都可以被认为是双向的。没有定义标准过滤器;但是,指定了足够的机制以允许实现任何所需的过滤器。
  • JoinRowSet - JoinRowSet 接口描述了一种机制,通过该机制可以在两个或多个标准 RowSet 实现之间建立关系。可以将任意数量的 RowSet 对象添加到 JoinRowSet 对象,前提是 RowSet 对象可以以类似 SQL JOIN 的方式关联。根据定义,SQL JOIN 语句用于组合包含在两个 (或者更多基于共同属性的关系数据库表。通过建立然后强制执行列匹配,JoinRowSet 对象在 RowSet 实例之间建立关系,而无需触及原始数据源。

3.0 实施者指南

JDBC RowSet 实现的兼容实现必须遵循本规范中描述的断言。根据 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 对象提供了在 SQL JOIN 操作中添加到 JoinRowSet 对象的能力。已实现 Joinable 接口的 RowSet 对象可以设置匹配列、检索匹配列或取消设置匹配列。然后,JoinRowSet 对象可以使用 RowSet 对象的匹配列作为添加 RowSet 对象的基础。

  • 3.8 RowSetFactory 接口

    提供 RowSetFactory 实现 must

4.0 相关规范

5.0 相关文档

  • 描述
    提供具有基本功能的RowSet对象的抽象类。
    CachedRowSet 的所有标准实现必须实现的接口。
    FilteredRowSet 的所有标准实现必须实现的标准接口。
    JdbcRowSet 的所有标准实现都必须实现的标准接口。
    1.0 背景
    JoinRowSet 接口提供了一种机制,用于将来自不同 RowSet 对象的相关数据组合到一个 JoinRowSet 对象中,它代表一个 SQL JOIN
    为所有 FilteredRowSet 对象提供框架以描述其过滤器的标准接口。
    定义工厂实现的接口,用于获取不同类型的RowSet实现。
    为设置和获取有关 RowSet 对象列的元数据信息的方法提供实现。
    使应用程序能够获得可用于创建不同类型的 RowSet 实现的 RowSetFactory 实现的工厂 API。
    SQLException 的扩展,提供有关在 RowSet 对象上设置的数据库警告的信息。
    WebRowSet 的所有实现都必须实现的标准接口。