T
- the result type@FunctionalInterface public interface ResultSetExtractor<T>
JdbcTemplate
's query methods.
Implementations of this interface perform the actual work of extracting
results from a ResultSet
, but don't need to worry
about exception handling. SQLExceptions
will be caught and handled by the calling JdbcTemplate.
This interface is mainly used within the JDBC framework itself.
A RowMapper
is usually a simpler choice for ResultSet processing,
mapping one result object per row instead of one result object for
the entire ResultSet.
Note: In contrast to a RowCallbackHandler
, a ResultSetExtractor
object is typically stateless and thus reusable, as long as it doesn't
access stateful resources (such as output streams when streaming LOB
contents) or keep result state within the object.
JdbcTemplate
,
RowCallbackHandler
,
RowMapper
,
AbstractLobStreamingResultSetExtractor
Modifier and Type | Method and Description |
---|---|
T |
extractData(ResultSet rs)
Implementations must implement this method to process the entire ResultSet.
|
@Nullable T extractData(ResultSet rs) throws SQLException, DataAccessException
rs
- the 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 an SQLException is encountered getting column
values or navigating (that is, there's no need to catch SQLException)DataAccessException
- in case of custom exceptions