public class RowMapperResultSetExtractor<T> extends Object implements ResultSetExtractor<List<T>>
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.
RowMapper,
JdbcTemplate,
MappingSqlQuery| Constructor and Description |
|---|
RowMapperResultSetExtractor(RowMapper<T> rowMapper)
Create a new RowMapperResultSetExtractor.
|
RowMapperResultSetExtractor(RowMapper<T> rowMapper,
int rowsExpected)
Create a new RowMapperResultSetExtractor.
|
| Modifier and Type | Method and Description |
|---|---|
List<T> |
extractData(ResultSet rs)
Implementations must implement this method to process the entire ResultSet.
|
public RowMapperResultSetExtractor(RowMapper<T> rowMapper)
rowMapper - the RowMapper which creates an object for each rowpublic RowMapperResultSetExtractor(RowMapper<T> rowMapper, int rowsExpected)
rowMapper - the RowMapper which creates an object for each rowrowsExpected - the number of expected rows
(just used for optimized collection handling)public List<T> extractData(ResultSet rs) throws SQLException
ResultSetExtractorextractData in interface ResultSetExtractor<List<T>>rs - ResultSet to extract data from. Implementations should
not close this: it will be closed by the calling JdbcTemplate.null if none
(the extractor will typically be stateful in the latter case).SQLException - if a SQLException is encountered getting column
values or navigating (that is, there's no need to catch SQLException)