直到今天,我还在使用ResultSet处理查询的结果。但今天我读了一些关于RowSet和CachedRowset的文章,我意识到他们可以更好地服务于我的目的。虽然在我读到的所有示例中,RowSet和CachedRowSet都被称为object,但当我在代码中亲自尝试时,我意识到这些都是接口,并且在示例中它们使用了这些接口的一些实现。
现在我的问题是,我在哪里可以找到这些实现,是否有官方的东西?
我需要下载它们吗?或者它们是随JDK一起提供的吗?
发布于 2011-11-22 04:29:21
实现是特定于JRE的。Oracle (Sun) JRE附带了一系列实现:
com.sun.rowset.JdbcRowSetImplcom.sun.rowset.CachedRowSetImplcom.sun.rowset.WebRowSetImplcom.sun.rowset.FilteredRowSetImplcom.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()) {
// ...
}在Java1.7中,您可以通过javax.sql.rowset工厂获取它们,这样您就不依赖于底层的JRE实现,并且如果需要,您可以对选择的实现进行微调:
RowSetFactory rowSetFactory = RowSetProvider.newFactory();
JdbcRowSet rowSet = rowSetFactory.createJdbcRowSet();
// ...它只是不提供在构造时传递ResultSet的可能性。这些实现并不随一般的JDBC驱动程序一起提供(至少,MySQL和PostgreSQL没有)。它基本上是JDBC API上的一个额外(可选)层,作为包名前缀javax提示。
请注意,如果您通过查看行集来达到此目的,那么您可能希望考虑改为查看ORM,例如Hibernate或JPA。它们提供了第一级/第二级缓存的可能性。
另请参阅:
javax.sql.rowset package summary的GNUGPL2许可证
发布于 2011-11-22 03:37:43
RowSet和CachedRowSet是由JDBC驱动程序实现的。
您的数据库提供商提供驱动程序,例如Oracle或MySql。然而,这些驱动程序只有在与实际数据库结合使用时才有意义。
发布于 2018-08-23 03:17:34
它随JDK一起提供。
在JDK 10中,jar是: jdk-10.0.2/lib/jrt-fs.jar
jar中的包/类是: javax.sql.RowSet.class
丹尼尔·皮涅罗
danielpm1982@gmail.com


https://stackoverflow.com/questions/8217493
复制相似问题