gpt4 book ai didi

java - RowSet、CachedRowSet 等的实现

转载 作者:太空狗 更新时间:2023-10-29 22:54:37 24 4
gpt4 key购买 nike

直到今天,我在处理查询结果时一直使用 ResultSet。但是今天我读了一些关于RowSet的内容和 CachedRowset我意识到它们可以更好地服务于我的目的。虽然在我阅读的所有示例中,RowSetCachedRowSet 都被称为对象,但当我自己在代码中尝试时,我意识到它们是接口(interface),在它们使用的示例中这些接口(interface)的一些实现。

现在我的问题是我在哪里可以找到这些实现,是否有官方的东西?

我需要下载它们还是它们随 JDK 一起提供?

最佳答案

实现是特定于 JRE 的。 Oracle (Sun) JRE 带有一堆实现:

  • com.sun.rowset.JdbcRowSetImpl
  • com.sun.rowset.CachedRowSetImpl
  • com.sun.rowset.WebRowSetImpl
  • com.sun.rowset.FilteredRowSetImpl
  • com.sun.rowset.JoinRowSetImpl

在 Java 1.6 及之前的版本中,您需要自己构建它们:

JdbcRowSet rowSet = new JdbcRowSetImpl();
rowSet.setDataSourceName("jdbc/dbname");
// Or
rowSet.setUrl("jdbc:vendor://host:port/dbname");
rowSet.setUsername("username");
rowSet.setPassword("password");

rowSet.setCommand("SELECT id, name, value FROM tbl");
rowSet.execute();

while (rowSet.next()) {
// ...
}

在 Java 1.7 中,您可以通过 javax.sql.rowset 工厂获取它们,这样您就不会依赖于底层 JRE 实现,并且您可以在必要时微调选择的实现:

RowSetFactory rowSetFactory = RowSetProvider.newFactory();
JdbcRowSet rowSet = rowSetFactory.createJdbcRowSet();
// ...

它只是不提供在构建时传递 ResultSet 的可能性。这些实现不附带普通的 JDBC 驱动程序(至少,MySQL 和 PostgreSQL 没有)。它基本上是 JDBC API 之上的一个额外(可选)层,作为包名称前缀 javax 提示。

请注意,如果您通过研究行集了解了那么多,那么您可能需要考虑研究 ORM,例如 Hibernate 或 JPA。它们提供一级/二级缓存的可能性。

另见:

关于java - RowSet、CachedRowSet 等的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8217493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com