Save This Page
Home » spring-framework-2.5.4 » org.springframework » jdbc » object » [javadoc | source]
org.springframework.jdbc.object
public class: SqlFunction [javadoc | source]
java.lang.Object
   org.springframework.jdbc.object.RdbmsOperation
      org.springframework.jdbc.object.SqlOperation
         org.springframework.jdbc.object.SqlQuery
            org.springframework.jdbc.object.MappingSqlQueryWithParameters
               org.springframework.jdbc.object.MappingSqlQuery
                  org.springframework.jdbc.object.SqlFunction

All Implemented Interfaces:
    InitializingBean

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 specialized run methods for specific parameter and return types.

Like all RdbmsOperation objects, SqlFunction objects are thread-safe.

Fields inherited from org.springframework.jdbc.object.RdbmsOperation:
logger
Constructor:
 public SqlFunction() 
 public SqlFunction(DataSource ds,
    String sql) 
    Create a new SqlFunction object with SQL, but without parameters. Must add parameters or settle with none.
    Parameters:
    ds - DataSource to obtain connections from
    sql - SQL to execute
 public SqlFunction(DataSource ds,
    String sql,
    int[] types) 
    Create a new SqlFunction object with SQL and parameters.
    Parameters:
    ds - DataSource to obtain connections from
    sql - SQL to execute
    types - SQL types of the parameters, as defined in the java.sql.Types class
    Also see:
    java.sql.Types
 public SqlFunction(DataSource ds,
    String sql,
    int[] types,
    Class resultType) 
    Create a new SqlFunction object with SQL, parameters and a result type.
    Parameters:
    ds - DataSource to obtain connections from
    sql - SQL to execute
    types - SQL types of the parameters, as defined in the java.sql.Types class
    resultType - the type that the result object is required to match
    Also see:
    setResultType(Class)
    java.sql.Types
Method from org.springframework.jdbc.object.SqlFunction Summary:
mapRow,   run,   run,   run,   runGeneric,   runGeneric,   runGeneric,   setResultType
Methods from org.springframework.jdbc.object.MappingSqlQuery:
mapRow,   mapRow
Methods from org.springframework.jdbc.object.MappingSqlQueryWithParameters:
mapRow,   newRowMapper
Methods from 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,   newRowMapper,   setRowsExpected
Methods from org.springframework.jdbc.object.SqlOperation:
compileInternal,   getParsedSql,   newPreparedStatementCreator,   newPreparedStatementCreator,   newPreparedStatementSetter,   onCompileInternal
Methods from org.springframework.jdbc.object.RdbmsOperation:
afterPropertiesSet,   allowsUnusedParameters,   checkCompiled,   compile,   compileInternal,   declareParameter,   getDeclaredParameters,   getGeneratedKeysColumnNames,   getJdbcTemplate,   getResultSetType,   getSql,   isCompiled,   isReturnGeneratedKeys,   isUpdatableResults,   setDataSource,   setFetchSize,   setGeneratedKeysColumnNames,   setJdbcTemplate,   setMaxRows,   setParameters,   setQueryTimeout,   setResultSetType,   setReturnGeneratedKeys,   setSql,   setTypes,   setUpdatableResults,   supportsLobParameters,   validateNamedParameters,   validateParameters
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.springframework.jdbc.object.SqlFunction Detail:
 protected Object 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.
 public int run() 
    Convenient method to run the function without arguments.
 public int run(int parameter) 
    Convenient method to run the function with a single int argument.
 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.
 public Object runGeneric() 
    Convenient method to run the function without arguments, returning the value as an object.
 public Object runGeneric(int parameter) 
    Convenient method to run the function with a single int argument.
 public Object runGeneric(Object[] parameters) 
    Analogous to the SqlQuery.findObject(Object[]) method. This is a generic method to execute a query, taken a number of arguments.
 public  void setResultType(Class 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.