这些实现是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");// OrrowSet.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。它们提供了第一级/第二级缓存的可能性。
也可以看看:
- JDBC指南-第10章-行集
- JDBC RowSet教程,由Oracle提供
- Java 8
javax.sql.rowset
软件包摘要 - 适用于Oracle的com.sun.rowset实现的OpenJDK 8中的源代码,具有Classpath异常的 Gnu GPL 2许可证



