Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CachedRowSet: can it still be used to hold ResultSet data?

I would like to write a java function that takes in a SQL query and returns a ResultSet for processing elsewhere. This can't be done as a ResultSet is dead once the connection is closed.

Googling around I found a VERY OLD (2004) OReilly article that had something that looked like the cure: CachedRowSet. You just drop in your ResultSet, the CachedRowSet saves the data, lets you close the connection and play with the data elsewhere using the returned CachedRowSet.

The article references implementations of the CachedRowSet by Sun, which appear to be nowhere to be found.

Modern javadocs ( for Java 1.5 and up ) seem to have something by the same name, "CachedRowSet", that is more than just a holder of ResultSet data. That "CachedRowSet" seems to do the entire database processing from getting connections and everything else.

Is THAT "CachedRowSet" the same thing as is talked about in the old article?

I would like something simple, like in the old article. Something to plop a ResultSet into for processing after the conneciton is closed.

Is there such an animal?

Thanks

like image 300
Steve Avatar asked Apr 26 '12 21:04

Steve


1 Answers

CachedRowSet is a standard Java interface. Sun wrote a reference implementation, and the Sun/Oracle JDK contains it. If you're using a different JDK, that or another implementation may or may not be available.

If you already have a ResultSet, then you can fill a CachedRowSet from it using the populate method.

If you are forward-thinking enough to be using Java 7, then you can obtain a CachedRowSet instance in a portable way, using a RowSetFactory, which has a createCachedRowSet method. You can get a RowSetFactory from a RowSetProvider (of course!).

like image 178
Tom Anderson Avatar answered Sep 22 '22 20:09

Tom Anderson