Implementations of RowSet, CachedRowSet etc
The implementations are JRE specific. Oracle (Sun) JRE comes with a bunch of implementations:
com.sun.rowset.JdbcRowSetImpl
com.sun.rowset.CachedRowSetImpl
com.sun.rowset.WebRowSetImpl
com.sun.rowset.FilteredRowSetImpl
com.sun.rowset.JoinRowSetImpl
In Java 1.6 and before, you'd need to construct them yourself:
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()) {
// ...
}
In Java 1.7 you can get them by a javax.sql.rowset
factory so that you're not dependent of underlying JRE implementation and that you can finetune the implementation of choice if necessary:
RowSetFactory rowSetFactory = RowSetProvider.newFactory();
JdbcRowSet rowSet = rowSetFactory.createJdbcRowSet();
// ...
It only doesn't provide a possibility to pass a ResultSet
on construction. Those implementations doesn't ship with the average JDBC driver (at least, MySQL and PostgreSQL have none). It's basically an extra (optional) layer over JDBC API as the package name prefix javax
hints.
Note that if you get that far by looking into rowsets, then you might want to consider to look into an ORM instead, such as Hibernate or JPA. They provide first/second level cache possibilities.
See also:
- JDBC Guide - Chapter 10 - RowSet
- JDBC RowSet tutorial, by Oracle
- Java 8
javax.sql.rowset
package summary - Source code in OpenJDK 8 for Oracle’s com.sun.rowset implementation, Gnu GPL 2 license with Classpath exception