Do you still think the only way to retrieve data from the database is to use the java.sql.ResultSet? Try the new (hum) javax.sql.RowSet. One of the coolest features is to use it in a disconnected manner. Sounds familiar? Take a look at the .NET DataSet, the only way for .NET developers to retrieve data from the database; why bother converting records to objects ;-). This article compares the JDBC and the .NET classes.
This RowSet is available since Java 1.4 and JDBC 2.x, but it’s part of the JDBC optional package (javax.sql). The Oracle implementation is available for some time in the oracle.jdbc.rowset package (at least since 9i, but probably even earlier). The latest version implements the mandatory JDBC 3.0 features and also an implementation of the WebRowSet (JSR-114), that offers XML ‘access’ to the content. More information on the OTN JDBC page.