public abstract class UpdatableSqlQuery<T> extends SqlQuery<T>
Subclasses can be constructed providing SQL, parameter types and a DataSource. SQL will often vary between subclasses.
SqlQuery
Modifier and Type | Class and Description |
---|---|
protected class |
UpdatableSqlQuery.RowMapperImpl
Implementation of RowMapper that calls the enclosing
class's
updateRow() method for each row. |
logger
Constructor and Description |
---|
UpdatableSqlQuery()
Constructor to allow use as a JavaBean
|
UpdatableSqlQuery(DataSource ds,
String sql)
Convenient constructor with DataSource and SQL string.
|
Modifier and Type | Method and Description |
---|---|
protected RowMapper<T> |
newRowMapper(Object[] parameters,
Map<?,?> context)
Implementation of the superclass template method.
|
protected abstract T |
updateRow(ResultSet rs,
int rowNum,
Map<?,?> context)
Subclasses must implement this method to update each row of the
ResultSet and optionally create object of the result type.
|
execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, execute, executeByNamedParam, executeByNamedParam, findObject, findObject, findObject, findObject, findObject, findObject, findObject, findObject, findObject, findObject, findObjectByNamedParam, findObjectByNamedParam, getRowsExpected, setRowsExpected
compileInternal, getParsedSql, newPreparedStatementCreator, newPreparedStatementCreator, newPreparedStatementSetter, onCompileInternal
afterPropertiesSet, allowsUnusedParameters, checkCompiled, compile, declareParameter, getDeclaredParameters, getGeneratedKeysColumnNames, getJdbcTemplate, getResultSetType, getSql, isCompiled, isReturnGeneratedKeys, isUpdatableResults, resolveSql, setDataSource, setFetchSize, setGeneratedKeysColumnNames, setJdbcTemplate, setMaxRows, setParameters, setQueryTimeout, setResultSetType, setReturnGeneratedKeys, setSql, setTypes, setUpdatableResults, supportsLobParameters, validateNamedParameters, validateParameters
public UpdatableSqlQuery()
public UpdatableSqlQuery(DataSource ds, String sql)
ds
- DataSource to use to get connectionssql
- SQL to runprotected RowMapper<T> newRowMapper(@Nullable Object[] parameters, @Nullable Map<?,?> context)
updateRow()
method.newRowMapper
in class SqlQuery<T>
parameters
- the parameters to the execute()
method,
in case subclass is interested; may be null
if there
were no parameters.context
- contextual information passed to the mapRow
callback method. The JDBC operation itself doesn't rely on this parameter,
but it can be useful for creating the objects of the result list.SqlQuery.execute(java.lang.Object[], java.util.Map<?, ?>)
protected abstract T updateRow(ResultSet rs, int rowNum, @Nullable Map<?,?> context) throws SQLException
rs
- ResultSet we're working throughrowNum
- row number (from 0) we're up tocontext
- passed to the execute() method.
It can be null
if no contextual information is need. If you
need to pass in data for each row, you can pass in a HashMap with
the primary key of the row being the key for the HashMap. That way
it is easy to locate the updates for each rowSQLException
- if there's an error updateing data.
Subclasses can simply not catch SQLExceptions, relying on the
framework to clean up.