from this java tutorial:
A RowSet object is scrollable and updatable by default, so by populating a RowSet object with the contents of a result set, you can effectively make the result set scrollable and updatable.
and then from this subsequent java tutorial:
Passing ResultSet Objects
The simplest way to create a JdbcRowSet object is to produce a ResultSet object and pass it to the JdbcRowSetImpl constructor. Doing this not only creates a JdbcRowSet object but also populates it with the data in the ResultSet object.
Note: The ResultSet object that is passed to the JdbcRowSetImpl constructor must be scrollable.
Why the result set needs to be scrollable if a RowSet object is scrollable by default? Is not that the main advantadge of wrapping a ResultSet in a JdbcRowSet?
UPDATE: Referring directly to the JdbcRowSet interface:
*One of the main uses of a JdbcRowSet object is to make a ResultSet object scrollable and updatable when it does not otherwise have those capabilities. *
quote from the same link.
Thanks in advance.
JdbcRowSetImpl
is a - relatively - thin wrapper around a Resultset
, so it demands that the ResultSet
is also scrollable to be able to provide the required scrollability, if you don't want to or can't provide a scrollable result set you can use a CachedRowSet
.
Contrary to what the tutorial you link to says, the com.sun.rowset.JdbcRowSetImpl
does not convert a non-scrollable ResultSet
to a scrollable result set. The implementation simply wraps the ResultSet
and forwards calls directly to it, so if the ResultSet
is not scrollable then the JdbcRowSet
isn't either. Same goes for the updatability.
The tutorial seems to be contradictory, because after the introduction that you can use JdbcRowSet
to make a result set scrollable, it notes:
A
JdbcRowSet
object created with aResultSet
object serves as a wrapper for theResultSet
object. Because theRowSet
object rs is scrollable and updatable,jdbcRs
is also scrollable and updatable. If you have run the methodcreateStatement
without any arguments,rs
would not be scrollable or updatable, and neither wouldjdbcRs
.
(emphasis mine)