Package org.springframework.jdbc.core

# Interface RowCallbackHandler

All Known Implementing Classes:
  `RowCountCallbackHandler`

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface RowCallbackHandler
An interface used by `JdbcTemplate` and `NamedParameterJdbcTemplate` for processing rows of a `ResultSet` on a per-row basis. Implementations of this interface perform the actual work of processing each row but don't need to worry about exception handling. `SQLExceptions` will be caught and handled by the calling `JdbcTemplate` or `NamedParameterJdbcTemplate`.

In contrast to a `ResultSetExtractor`, a `RowCallbackHandler` object is typically stateful: it keeps the result state within the object, to be available for later inspection. See `RowCountCallbackHandler` for a usage example.

Consider using a `RowMapper` instead if you need to map exactly one result object per row, assembling them into a List.

Author:
  Rod Johnson, Juergen Hoeller
See Also:
  - `JdbcTemplate`
  - `NamedParameterJdbcTemplate`
  - `RowMapper`
  - `ResultSetExtractor`
  - `RowCountCallbackHandler`

## Method Summary

Modifier and Type
Method
Description
`void`
`processRow(ResultSet rs)`
Implementations must implement this method to process each row of data in the `ResultSet`.

## Method Details

### processRow

void processRow(ResultSet rs) throws SQLException
Implementations must implement this method to process each row of data in the `ResultSet`. This method should not call `next()` on the `ResultSet`; it is only supposed to extract values of the current row.

Exactly what the implementation chooses to do is up to it: a trivial implementation might simply count rows, while another implementation might build an XML document.

Parameters:
  `rs` - the `ResultSet` to process (pre-initialized for the current row)
Throws:
  `SQLException` - if an `SQLException` is encountered getting column values (that is, there's no need to catch `SQLException`)