liquibase.executor.jvm
Class RowMapperResultSetExtractor

java.lang.Object
  extended by liquibase.executor.jvm.RowMapperResultSetExtractor

public class RowMapperResultSetExtractor
extends Object

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));

Author:
Spring Framework
See Also:
RowMapper, Executor

Constructor Summary
RowMapperResultSetExtractor(RowMapper rowMapper)
          Create a new RowMapperResultSetExtractor.
RowMapperResultSetExtractor(RowMapper rowMapper, int rowsExpected)
          Create a new RowMapperResultSetExtractor.
 
Method Summary
 Object extractData(ResultSet rs)
          Implementations must implement this method to process the entire ResultSet.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RowMapperResultSetExtractor

public RowMapperResultSetExtractor(RowMapper rowMapper)
Create a new RowMapperResultSetExtractor.

Parameters:
rowMapper - the RowMapper which creates an object for each row

RowMapperResultSetExtractor

public RowMapperResultSetExtractor(RowMapper rowMapper,
                                   int rowsExpected)
Create a new RowMapperResultSetExtractor.

Parameters:
rowMapper - the RowMapper which creates an object for each row
rowsExpected - the number of expected rows (just used for optimized collection handling)
Method Detail

extractData

public Object extractData(ResultSet rs)
                   throws SQLException
Implementations must implement this method to process the entire ResultSet.

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)


Copyright © 2016 Liquibase.org. All rights reserved.