这些实现是特定于 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中,你可以通过工厂获得它们,这样你就不会依赖于底层的JRE实现,并且可以在必要时微调所选的实现:javax.sql.rowset
RowSetFactory rowSetFactory = RowSetProvider.newFactory();
JdbcRowSet rowSet = rowSetFactory.createJdbcRowSet();
// ...
它只是没有提供传递构造的可能性。这些实现不附带普通的JDBC驱动程序(至少,MySQL和PostgreSQL没有)。它基本上是JDBC API上的额外(可选)层,因为包名称前缀提示。ResultSet
javax
请注意,如果您通过查看行集来了解这一点,那么您可能需要考虑改为查看ORM,例如Hibernate或JPA。它们提供第一级/第二级缓存可能性。
另请参阅: