类 MappingSqlQueryWithParameters<T>
- java.lang.Object
- org.springframework.jdbc.object.RdbmsOperation
- org.springframework.jdbc.object.SqlOperation
- org.springframework.jdbc.object.SqlQuery<T>
- org.springframework.jdbc.object.MappingSqlQueryWithParameters<T>
- 所有已实现的接口:
InitializingBean
- 直接已知子类:
MappingSqlQuery
public abstract class MappingSqlQueryWithParameters<T> extends SqlQuery<T>
Reusable RDBMS query in which concrete subclasses must implement the abstract mapRow(ResultSet, int) method to map each row of the JDBC ResultSet into an object.Such manual mapping is usually preferable to "automatic" mapping using reflection, which can become complex in non-trivial cases. For example, the present class allows different objects to be used for different rows (for example, if a subclass is indicated). It allows computed fields to be set. And there's no need for ResultSet columns to have the same names as bean properties. The Pareto Principle in action: going the extra mile to automate the extraction process makes the framework much more complex and delivers little real benefit.
Subclasses can be constructed providing SQL, parameter types and a DataSource. SQL will often vary between subclasses.
- 作者:
- Rod Johnson, Thomas Risberg, Jean-Pierre Pawlak
- 另请参阅:
MappingSqlQuery
,SqlQuery
嵌套类概要
嵌套类 修饰符和类型 类 说明 protected class
MappingSqlQueryWithParameters.RowMapperImpl
Implementation of RowMapper that calls the enclosing class'smapRow
method for each row.
字段概要
从类继承的字段 org.springframework.jdbc.object.RdbmsOperation
logger
构造器概要
构造器 构造器 说明 MappingSqlQueryWithParameters()
Constructor to allow use as a JavaBeanMappingSqlQueryWithParameters(DataSource ds, String sql)
Convenient constructor with DataSource and SQL string.
方法概要
所有方法 实例方法 抽象方法 具体方法 修饰符和类型 方法 说明 protected abstract T
mapRow(ResultSet rs, int rowNum, Object[] parameters, Map<?,?> context)
Subclasses must implement this method to convert each row of the ResultSet into an object of the result type.protected RowMapper<T>
newRowMapper(Object[] parameters, Map<?,?> context)
Implementation of protected abstract method.从类继承的方法 org.springframework.jdbc.object.SqlQuery
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
从类继承的方法 org.springframework.jdbc.object.SqlOperation
compileInternal, getParsedSql, newPreparedStatementCreator, newPreparedStatementCreator, newPreparedStatementSetter, onCompileInternal
从类继承的方法 org.springframework.jdbc.object.RdbmsOperation
afterPropertiesSet, allowsUnusedParameters, checkCompiled, compile, declareParameter, getDeclaredParameters, getGeneratedKeysColumnNames, getJdbcTemplate, getResultSetType, getSql, isCompiled, isReturnGeneratedKeys, isUpdatableResults, setDataSource, setFetchSize, setGeneratedKeysColumnNames, setJdbcTemplate, setMaxRows, setParameters, setQueryTimeout, setResultSetType, setReturnGeneratedKeys, setSql, setTypes, setUpdatableResults, supportsLobParameters, validateNamedParameters, validateParameters
构造器详细资料
MappingSqlQueryWithParameters
public MappingSqlQueryWithParameters()
Constructor to allow use as a JavaBean
MappingSqlQueryWithParameters
public MappingSqlQueryWithParameters(DataSource ds, String sql)
Convenient constructor with DataSource and SQL string.- 参数:
ds
- DataSource to use to get connectionssql
- SQL to run
方法详细资料
newRowMapper
protected RowMapper<T> newRowMapper(Object[] parameters, Map<?,?> context)
Implementation of protected abstract method. This invokes the subclass's implementation of the mapRow() method.- 指定者:
newRowMapper
在类中SqlQuery<T>
- 参数:
parameters
- the parameters to theexecute()
method, in case subclass is interested; may benull
if there were no parameters.context
- contextual information passed to themapRow
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<?, ?>)
mapRow
protected abstract T mapRow(ResultSet rs, int rowNum, Object[] parameters, Map<?,?> context) throws SQLException
Subclasses must implement this method to convert each row of the ResultSet into an object of the result type.- 参数:
rs
- ResultSet we're working throughrowNum
- row number (from 0) we're up toparameters
- to the query (passed to the execute() method). Subclasses are rarely interested in these. It can benull
if there are no parameters.context
- passed to the execute() method. It can benull
if no contextual information is need.- 返回:
- an object of the result type
- 抛出:
SQLException
- if there's an error extracting data. Subclasses can simply not catch SQLExceptions, relying on the framework to clean up.