## org.springframework.jdbc.core
Class SqlRowSetResultSetExtractor

    java.lang.Object
      org.springframework.jdbc.core.SqlRowSetResultSetExtractor

All Implemented Interfaces:
  ResultSetExtractor

    public class SqlRowSetResultSetExtractor

extends Object
implements ResultSetExtractor

ResultSetExtractor implementation that returns a Spring SqlRowSet representation for each given ResultSet.

The default implementation uses a standard JDBC CachedRowSet underneath. This means that JDBC RowSet support needs to be available at runtime: by default, Sun's `com.sun.rowset.CachedRowSetImpl` class is used, which is part of JDK 1.5+ and also available separately as part of Sun's JDBC RowSet Implementations download (rowset.jar).

Since:
  1.2
Author:
  Juergen Hoeller
See Also:
  `newCachedRowSet()`, `SqlRowSet`, `JdbcTemplate.queryForRowSet(String)`, `CachedRowSet`

Constructor Summary
`SqlRowSetResultSetExtractor()`

Method Summary
`protected SqlRowSet` `createSqlRowSet(ResultSet rs)` Create a SqlRowSet that wraps the given ResultSet, representing its data in a disconnected fashion.
`Object` `extractData(ResultSet rs)` Implementations must implement this method to process the entire ResultSet.
`protected CachedRowSet` `newCachedRowSet()` Create a new CachedRowSet instance, to be populated by the `createSqlRowSet` implementation.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SqlRowSetResultSetExtractor

    public SqlRowSetResultSetExtractor()

Method Detail

### extractData

    public Object extractData(ResultSet rs)
                       throws SQLException

  Description copied from interface: `ResultSetExtractor`
  Implementations must implement this method to process the entire ResultSet.

  Specified by:
    `extractData` in interface `ResultSetExtractor`
  Parameters:
    `rs` - ResultSet to extract data from. Implementations should not close this: it will be closed by the calling JdbcTemplate.
  Returns:
    an arbitrary result object, or `null` if none (the extractor will typically be stateful in the latter case).
  Throws:
    `SQLException` - if a SQLException is encountered getting column values or navigating (that is, there's no need to catch SQLException)

### createSqlRowSet

    protected SqlRowSet createSqlRowSet(ResultSet rs)
                                 throws SQLException

  Create a SqlRowSet that wraps the given ResultSet, representing its data in a disconnected fashion.

  This implementation creates a Spring ResultSetWrappingSqlRowSet instance that wraps a standard JDBC CachedRowSet instance. Can be overridden to use a different implementation.

  Parameters:
    `rs` - the original ResultSet (connected)
  Returns:
    the disconnected SqlRowSet
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `newCachedRowSet()`, `ResultSetWrappingSqlRowSet`

### newCachedRowSet

    protected CachedRowSet newCachedRowSet()
                                    throws SQLException

  Create a new CachedRowSet instance, to be populated by the `createSqlRowSet` implementation.

  The default implementation creates a new instance of Sun's `com.sun.rowset.CachedRowSetImpl` class, which is part of JDK 1.5+ and also available separately as part of Sun's JDBC RowSet Implementations download.

  Returns:
    a new CachedRowSet instance
  Throws:
    `SQLException` - if thrown by JDBC methods
  See Also:
    `createSqlRowSet(java.sql.ResultSet)`, `CachedRowSetImpl`

Copyright © 2002-2008 The Spring Framework.