org.springframework.jdbc.core
Class SqlRowSetResultSetExtractor

java.lang.Object
  extended by 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.