6

有一些 JDBC行集,如CachedRowSetWebRowSetFilteredRowSetJoinRowSet。有没有预兆知道它们在哪里使用?好的,在我不想打开和连接的地方可能是 CachedRowSet 很好,当我需要插入一些 XML 数据时可能是 WebRowSet 很好(“可能是”,但我不确定)。但是其他人呢?

显然,在 SQL 查询中编写连接而不是创建 2 个 JoinRowSet,从它们中获取所有数据并在 java 中连接字段,性能更好。FilteredRowSet 也是如此 - 将 where 子句添加到 SQL 查询而不是 grub 大量数据并通过 java 过滤它更有效。

但是有人“发明”了 CachedRowSet、WebRowSet、FilteredRowSet 和 JoinRowSet,为什么?有人对他们的使用有一些好的经验吗?

4

3 回答 3

4

CachedRowSet 接口定义了所有断开连接的 RowSet 对象可用的基本功能。其他三个是 CachedRowSet 接口的扩展,它们提供了更专业的功能。以下信息显示了它们之间的关系:

CachedRowSet对象具有 JdbcRowSet 对象的所有功能,此外它还可以执行以下操作:

  • 获取到数据源的连接并执行查询。
  • 从生成的 ResultSet 对象中读取数据并使用该数据填充自身

  • 在断开连接时操作数据并更改数据。
  • 重新连接到数据源以将更改写回它。
  • 检查与数据源的冲突并解决这些
    冲突

WebRowSet对象具有 CachedRowSet 对象的所有功能,此外它还可以执行以下操作:

  • 将自身写为 XML 文档
  • 读取描述 WebRowSet 对象的 XML 文档

JoinRowSet对象具有 WebRowSet 对象的所有功能(因此也具有 CachedRowSet 对象的功能),此外它还可以执行以下操作:

  • 无需连接到数据源即可形成等效的 SQL JOIN

FilteredRowSet对象同样具有 WebRowSet 对象(因此也具有 CachedRowSet 对象)的所有功能,此外它还可以执行以下操作:

  • 应用过滤条件,以便只有选定的数据可见。这相当于对 RowSet 对象执行查询,而无需使用查询语言或连接到数据源。
于 2014-03-09T14:27:48.990 回答
0

在 RowSet 接口中,行是从 JDBC 数据源检索的,但可以自定义行集,以便其数据也可以来自电子表格、平面文件或任何其他具有表格格式的数据源。

断开连接(不连接到数据源,除非从数据源读取数据或向其写入数据)

CachedRowSet

JoinRowSet

FilteredRowSet

WebRowSet

缓存行集 - 断开连接并能够在没有驱动程序的情况下运行,旨在与瘦客户端一起工作,以在分布式应用程序中传递数据或使结果集可滚动和可更新

WebRowSet - 以 XML 格式读取和写入行集的能力。

FilteredRowSet - 用于从行集中过滤的数据子集。

JoinRowSet - 用于组合来自两个不同 RowSet 对象的数据。当相关数据存储在不同的数据源中时,这可能特别有价值

文档

于 2012-11-23T11:27:10.463 回答
0

不确定,但这就是我对 FilteredRowSet 的看法。可以通过一次连接从数据库中获取数据。例如城市、州和国家的数据。以后可以进一步对数据进行子集化,而无需返回 Java 中的数据库。例如与城市、州或国家或它们的组合相关的所有记录。

于 2014-03-12T08:06:16.417 回答