javamysqljdbccachedrowset

Are there any good CachedRowSet implementations other than the proprietary Sun one?


I am investigating using javax.sql.rowset.CachedRowSet in part of my application, however I can only find information on using the proprietary sun implementation com.sun.rowset.CachedRowSetImpl or Oracle specific implementations.

The sun implementation is unsupported and subject to change. Using this could also cause problems if I want to deploy to non-Sun virtual machines in the future, and finally it leaves unsuppressible warnings in our build logs which can mask other warnings.

Is there an open source alternative implementation that we I can deploy with my application that will work well across multiple databases? At a minimum something that supports MySQL.


Solution

  • You shouldn't be directly instantiating implementation of CachedRowSet -- use its Provider to obtain an instance: see http://docs.oracle.com/javase/7/docs/api/javax/sql/rowset/RowSetProvider.html (available since JDK7)

    In fact, CachedRowSet's interface and related factory are standard/portable.

    Something like the following shoud do the trick:

    CachedRowSet crs = RowSetProvider.newFactory().createCachedRowSet();
    crs.populate(myResultSet);