Top Description Fields Constructors Methods
org.springframework.jdbc.core

public Class RowMapperResultSetExtractor<T>

extends Object
implements ResultSetExtractor<List<T>>
Class Inheritance
All Implemented Interfaces
org.springframework.jdbc.core.ResultSetExtractor
Type Parameters
<T>
the result element type
Imports
java.sql.ResultSet, .SQLException, java.util.ArrayList, .List, org.springframework.util.Assert

Adapter implementation of the ResultSetExtractor interface that delegates to a RowMapper which is supposed to create an object for each row. Each object is added to the results List of this ResultSetExtractor.

Useful for the typical case of one object per row in the database table. The number of entries in the results list will match the number of rows.

Note that a RowMapper object is typically stateless and thus reusable; just the RowMapperResultSetExtractor adapter is stateful.

A usage example with JdbcTemplate:

JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);  // reusable object
RowMapper rowMapper = new UserRowMapper();  // reusable object

List allUsers = (List) jdbcTemplate.query(
    "select * from user",
    new RowMapperResultSetExtractor(rowMapper, 10));

User user = (User) jdbcTemplate.queryForObject(
    "select * from user where id=?", new Object[] {id},
    new RowMapperResultSetExtractor(rowMapper, 1));

Alternatively, consider subclassing MappingSqlQuery from the jdbc.object package: Instead of working with separate JdbcTemplate and RowMapper objects, you can have executable query objects (containing row-mapping logic) there.

Author
Juergen Hoeller
Since
1.0.2
See Also
RowMapper, JdbcTemplate, org.springframework.jdbc.object.MappingSqlQuery

Field Summary

Modifier and TypeField and Description
private final RowMapper<T>
private final int

Constructor Summary

AccessConstructor and Description
public
RowMapperResultSetExtractor(RowMapper<T>
the RowMapper which creates an object for each row
rowMapper
)

Create a new RowMapperResultSetExtractor.

public
RowMapperResultSetExtractor(RowMapper<T>
the RowMapper which creates an object for each row
rowMapper
,
int
the number of expected rows (just used for optimized collection handling)
rowsExpected
)

Create a new RowMapperResultSetExtractor.

Method Summary

Modifier and TypeMethod and Description
public List<T>
extractData(ResultSet
the ResultSet to extract data from. Implementations should not close this: it will be closed by the calling JdbcTemplate.
rs
)

Implements org.springframework.jdbc.core.ResultSetExtractor.extractData.

Implementations must implement this method to process the entire ResultSet.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

rowMapperback to summary
private final RowMapper<T> rowMapper
rowsExpectedback to summary
private final int rowsExpected

Constructor Detail

RowMapperResultSetExtractorback to summary
public RowMapperResultSetExtractor(RowMapper<T> rowMapper)

Create a new RowMapperResultSetExtractor.

Parameters
rowMapper:RowMapper<T>

the RowMapper which creates an object for each row

RowMapperResultSetExtractorback to summary
public RowMapperResultSetExtractor(RowMapper<T> rowMapper, int rowsExpected)

Create a new RowMapperResultSetExtractor.

Parameters
rowMapper:RowMapper<T>

the RowMapper which creates an object for each row

rowsExpected:int

the number of expected rows (just used for optimized collection handling)

Method Detail

extractDataback to summary
public List<T> extractData(ResultSet rs) throws SQLException

Implements org.springframework.jdbc.core.ResultSetExtractor.extractData.

Doc from org.springframework.jdbc.core.ResultSetExtractor.extractData.

Implementations must implement this method to process the entire ResultSet.

Parameters
rs:ResultSet

the ResultSet to extract data from. Implementations should not close this: it will be closed by the calling JdbcTemplate.

Returns:List<T>

an arbitrary result object, or null if none (the extractor will typically be stateful in the latter case).

Annotations
@Override
Exceptions
SQLException:
if an SQLException is encountered getting column values or navigating (that is, there's no need to catch SQLException)