类 SqlFunction<T>
- 所有已实现的接口:
InitializingBean
public class SqlFunction<T> extends MappingSqlQuery<T>
SQL "function" wrapper for a query that returns a single row of results. The default behavior is to return an int, but that can be overridden by using the constructor with an extra return type parameter.Intended to use to call SQL functions that return a single result using a query like "select user()" or "select sysdate from dual". It is not intended for calling more complex stored functions or for using a CallableStatement to invoke a stored procedure or stored function. Use StoredProcedure or SqlCall for this type of processing.
This is a concrete class, which there is often no need to subclass. Code using this package can create an object of this type, declaring SQL and parameters, and then invoke the appropriate
run
method repeatedly to execute the function. Subclasses are only supposed to add specializedrun
methods for specific parameter and return types.Like all RdbmsOperation objects, SqlFunction objects are thread-safe.
- 作者:
- Rod Johnson, Juergen Hoeller, Jean-Pierre Pawlak
- 另请参阅:
StoredProcedure
嵌套类概要
从类继承的嵌套类/接口 org.springframework.jdbc.object.MappingSqlQueryWithParameters
MappingSqlQueryWithParameters.RowMapperImpl
字段概要
从类继承的字段 org.springframework.jdbc.object.RdbmsOperation
logger
构造器概要
构造器 构造器 说明 SqlFunction()
Constructor to allow use as a JavaBean.SqlFunction(DataSource ds, String sql)
Create a new SqlFunction object with SQL, but without parameters.SqlFunction(DataSource ds, String sql, int[] types)
Create a new SqlFunction object with SQL and parameters.SqlFunction(DataSource ds, String sql, int[] types, Class<T> resultType)
Create a new SqlFunction object with SQL, parameters and a result type.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected T
mapRow(ResultSet rs, int rowNum)
This implementation of this method extracts a single value from the single row returned by the function.int
run()
Convenient method to run the function without arguments.int
run(int parameter)
Convenient method to run the function with a single int argument.int
run(Object... parameters)
Analogous to the SqlQuery.execute([]) method.Object
runGeneric()
Convenient method to run the function without arguments, returning the value as an object.Object
runGeneric(int parameter)
Convenient method to run the function with a single int argument.Object
runGeneric(Object[] parameters)
Analogous to theSqlQuery.findObject(Object[])
method.void
setResultType(Class<T> resultType)
Specify the type that the result object is required to match.从类继承的方法 org.springframework.jdbc.object.MappingSqlQuery
mapRow
从类继承的方法 org.springframework.jdbc.object.MappingSqlQueryWithParameters
newRowMapper
从类继承的方法 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
构造器详细资料
SqlFunction
public SqlFunction()
Constructor to allow use as a JavaBean. A DataSource, SQL and any parameters must be supplied before invoking thecompile
method and using this object.
SqlFunction
public SqlFunction(DataSource ds, String sql)
Create a new SqlFunction object with SQL, but without parameters. Must add parameters or settle with none.- 参数:
ds
- DataSource to obtain connections fromsql
- SQL to execute
SqlFunction
public SqlFunction(DataSource ds, String sql, int[] types)
Create a new SqlFunction object with SQL and parameters.- 参数:
ds
- DataSource to obtain connections fromsql
- SQL to executetypes
- SQL types of the parameters, as defined in thejava.sql.Types
class- 另请参阅:
Types
SqlFunction
public SqlFunction(DataSource ds, String sql, int[] types, Class<T> resultType)
Create a new SqlFunction object with SQL, parameters and a result type.- 参数:
ds
- DataSource to obtain connections fromsql
- SQL to executetypes
- SQL types of the parameters, as defined in thejava.sql.Types
classresultType
- the type that the result object is required to match- 另请参阅:
setResultType(Class)
,Types
方法详细资料
setResultType
public void setResultType(Class<T> resultType)
Specify the type that the result object is required to match.If not specified, the result value will be exposed as returned by the JDBC driver.
mapRow
protected T mapRow(ResultSet rs, int rowNum) throws SQLException
This implementation of this method extracts a single value from the single row returned by the function. If there are a different number of rows returned, this is treated as an error.- 指定者:
mapRow
在类中MappingSqlQuery<T>
- 参数:
rs
- ResultSet we're working throughrowNum
- row number (from 0) we're up to- 返回:
- 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.
run
public int run()
Convenient method to run the function without arguments.- 返回:
- the value of the function
run
public int run(int parameter)
Convenient method to run the function with a single int argument.- 参数:
parameter
- single int parameter- 返回:
- the value of the function
run
public int run(Object... parameters)
Analogous to the SqlQuery.execute([]) method. This is a generic method to execute a query, taken a number of arguments.- 参数:
parameters
- array of parameters. These will be objects or object wrapper types for primitives.- 返回:
- the value of the function
runGeneric
public Object runGeneric()
Convenient method to run the function without arguments, returning the value as an object.- 返回:
- the value of the function
runGeneric
public Object runGeneric(int parameter)
Convenient method to run the function with a single int argument.- 参数:
parameter
- single int parameter- 返回:
- the value of the function as an Object
runGeneric
public Object runGeneric(Object[] parameters)
Analogous to theSqlQuery.findObject(Object[])
method. This is a generic method to execute a query, taken a number of arguments.- 参数:
parameters
- array of parameters. These will be objects or object wrapper types for primitives.- 返回:
- the value of the function, as an Object
- 另请参阅:
SqlQuery.execute(Object[])