jdbc 行集在哪里使用?
Posted
技术标签:
【中文标题】jdbc 行集在哪里使用?【英文标题】:Where jdbc Rowsets are used? 【发布时间】:2012-11-23 10:43:10 【问题描述】:有一些 JDBC Rowsets,例如 CachedRowSet、WebRowSet、FilteredRowSet 和 JoinRowSet >。有没有预兆知道它们在哪里使用? 好的,在我不想打开和连接的地方可能是 CachedRowSet 很好,当我需要插入一些 XML 数据时可能是 WebRowSet 很好(“可能是”,但我不确定)。但是其他人呢?
显然,在 SQL 查询中编写连接而不是创建 2 个 JoinRowSet,从它们中获取所有数据并在 java 中连接字段,性能更好。 FilteredRowSet 也是如此 - 将 where 子句添加到 SQL 查询而不是 grub 大量数据并通过 java 过滤它更有效。
但是为什么有人“发明”了 CachedRowSet、WebRowSet、FilteredRowSet 和 JoinRowSet?有人对它们的使用有一些好的经验吗?
【问题讨论】:
【参考方案1】:CachedRowSet 接口定义了可用于所有断开连接的 RowSet 对象的基本功能。其他三个是 CachedRowSet 接口的扩展,它们提供了更专业的功能。以下信息显示了它们之间的关系:
CachedRowSet 对象具有 JdbcRowSet 对象的所有功能,此外它还可以执行以下操作:
获取到数据源的连接并执行查询。 从生成的 ResultSet 对象中读取数据并用填充自身 该数据。 操作数据并在数据存在时对其进行更改 已断开连接。 重新连接到数据源以将更改写回 它。 检查与数据源的冲突并解决这些冲突 冲突WebRowSet 对象具有 CachedRowSet 对象的所有功能,此外它还可以执行以下操作:
将自身写为 XML 文档 读取描述 WebRowSet 对象的 XML 文档JoinRowSet 对象具有 WebRowSet 对象的所有功能(因此也具有 CachedRowSet 对象的功能),此外它还可以执行以下操作:
无需连接到数据源即可形成等效的 SQL JOINFilteredRowSet 对象同样具有 WebRowSet 对象(因此也是 CachedRowSet 对象)的所有功能,此外它还可以执行以下操作:
应用过滤条件,以便只有选定的数据可见。这相当于对 RowSet 对象执行查询,而无需使用查询语言或连接到数据源。【讨论】:
【参考方案2】:RowSet 接口,行从 JDBC 数据源检索,但行集可以自定义,以便其数据也可以来自电子表格、平面文件或任何其他具有表格格式的数据源。
断开连接(不连接到数据源,除非从数据源读取数据或向其写入数据)
CachedRowSet
JoinRowSet
FilteredRowSet
WebRowSet
缓存行集 - 断开连接并能够在没有驱动程序的情况下运行,旨在与瘦客户端一起工作,以便在分布式应用程序中传递数据或使结果集可滚动和可更新
WebRowSet - 以 XML 格式读取和写入行集的能力。
FilteredRowSet- 用于从行集中过滤的数据子集。
JoinRowSet - 用于组合来自两个不同 RowSet 对象的数据。当相关数据存储在不同的数据源中时,这尤其有价值
Documentation
【讨论】:
【参考方案3】:不确定,但这就是我对 FilteredRowSet 的看法。可以通过一次连接从数据库中获取数据。例如城市、州和国家的数据。稍后可以进一步将数据子集返回到Java 中的数据库。例如与城市、州或国家或它们的组合相关的所有记录。
【讨论】:
以上是关于jdbc 行集在哪里使用?的主要内容,如果未能解决你的问题,请参考以下文章