spring-framework / org.springframework.jdbc.core / RowMapperResultSetExtractor

RowMapperResultSetExtractor

open class RowMapperResultSetExtractor<T : Any> : ResultSetExtractor<MutableList<T>>

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
RowMapperJdbcTemplateorg.springframework.jdbc.object.MappingSqlQuery

Constructors

<init>

RowMapperResultSetExtractor(rowMapper: RowMapper<T>)
RowMapperResultSetExtractor(rowMapper: RowMapper<T>, rowsExpected: Int)

Create a new RowMapperResultSetExtractor.

Functions

extractData

open fun extractData(rs: ResultSet): MutableList<T>