Package org.springframework.jdbc.core
Class SqlRowSetResultSetExtractor
- java.lang.Object
- org.springframework.jdbc.core.SqlRowSetResultSetExtractor
- All Implemented Interfaces:
ResultSetExtractor<SqlRowSet>
public class SqlRowSetResultSetExtractor extends Object implements ResultSetExtractor<SqlRowSet>
ResultSetExtractor
implementation that returns a SpringSqlRowSet
representation for each givenResultSet
.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 on Java 6, or thejavax.sql.rowset.RowSetProvider
mechanism on Java 7+ / JDBC 4.1+.- Since:
- 1.2
- Author:
- Juergen Hoeller
- See Also:
newCachedRowSet()
,SqlRowSet
,JdbcTemplate.queryForRowSet(String)
,CachedRowSet
Constructor Summary
Constructors Constructor Description SqlRowSetResultSetExtractor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected SqlRowSet
createSqlRowSet(ResultSet rs)
Create a SqlRowSet that wraps the given ResultSet, representing its data in a disconnected fashion.SqlRowSet
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 thecreateSqlRowSet
implementation.
Constructor Detail
SqlRowSetResultSetExtractor
public SqlRowSetResultSetExtractor()
Method Detail
extractData
public SqlRowSet extractData(ResultSet rs) throws SQLException
Description copied from interface:ResultSetExtractor
Implementations must implement this method to process the entire ResultSet.- Specified by:
extractData
in interfaceResultSetExtractor<SqlRowSet>
- 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 thecreateSqlRowSet
implementation.The default implementation uses JDBC 4.1's RowSetProvider when running on JDK 7 or higher, falling back to Sun's
com.sun.rowset.CachedRowSetImpl
class on older JDKs.- Returns:
- a new CachedRowSet instance
- Throws:
SQLException
- if thrown by JDBC methods- See Also:
createSqlRowSet(java.sql.ResultSet)