## org.springframework.jdbc.core.simple
Class AbstractJdbcCall

    java.lang.Object
      org.springframework.jdbc.core.simple.AbstractJdbcCall

Direct Known Subclasses:
  SimpleJdbcCall

    public abstract class AbstractJdbcCall

extends Object

Abstract class to provide base functionality for easy stored procedure calls based on configuration options and database metadata. This class provides the base SPI for `SimpleJdbcCall`.

Since:
  2.5
Author:
  Thomas Risberg

Field Summary
`protected Log` `logger` Logger available to subclasses

Constructor Summary
`protected` `AbstractJdbcCall(DataSource dataSource)` Constructor to be used when initializing using a `DataSource`.
`protected` `AbstractJdbcCall(JdbcTemplate jdbcTemplate)` Constructor to be used when initializing using a `JdbcTemplate`.

Method Summary
`void` `addDeclaredParameter(SqlParameter parameter)` Add a declared parameter to the list of parameters for the call.
`void` `addDeclaredRowMapper(String parameterName, ParameterizedRowMapper rowMapper)` Deprecated. in favor of `addDeclaredRowMapper(String, org.springframework.jdbc.core.RowMapper)`
`void` `addDeclaredRowMapper(String parameterName, RowMapper rowMapper)` Add a `RowMapper` for the specified parameter or column.
`protected void` `checkCompiled()` Check whether this operation has been compiled already; lazily compile it if not already compiled.
`void` `compile()` Compile this JdbcCall using provided parameters and meta data plus other settings.
`protected void` `compileInternal()` Method to perform the actual compilation.
`protected Map<String,Object>` `doExecute(Map<String,?> args)` Method that provides execution of the call using the passed in Map of parameters
`protected Map<String,Object>` `doExecute(Object[] args)` Method that provides execution of the call using the passed in array of parameters
`protected Map<String,Object>` `doExecute(SqlParameterSource parameterSource)` Method that provides execution of the call using the passed in `SqlParameterSource`
`protected CallableStatementCreatorFactory` `getCallableStatementFactory()` Get the `CallableStatementCreatorFactory` being used
`protected List<SqlParameter>` `getCallParameters()` Get a List of all the call parameters to be used for call.
`String` `getCallString()` Get the call string that should be used based on parameters and meta data.
`String` `getCatalogName()` Get the catalog name used.
`Set<String>` `getInParameterNames()` Get the names of in parameters to be used.
`JdbcTemplate` `getJdbcTemplate()` Get the configured `JdbcTemplate`
`String` `getProcedureName()` Get the name of the stored procedure.
`protected String` `getScalarOutParameterName()` Get the name of a single out parameter or return value.
`String` `getSchemaName()` Get the schema name used.
`boolean` `isCompiled()` Is this operation "compiled"?
`boolean` `isFunction()` Is this call a function call?
`boolean` `isReturnValueRequired()` Does the call require a return value?
`protected Map<String,?>` `matchInParameterValuesWithCallParameters(Map<String,?> args)` Match the provided in parameter values with registered parameters and parameters defined via metadata processing.
`protected Map<String,Object>` `matchInParameterValuesWithCallParameters(SqlParameterSource parameterSource)` Match the provided in parameter values with registered parameters and parameters defined via metadata processing.
`protected void` `onCompileInternal()` Hook method that subclasses may override to react to compilation.
`void` `setAccessCallParameterMetaData(boolean accessCallParameterMetaData)` Specify whether the parameter metadata for the call should be used.
`void` `setCatalogName(String catalogName)` Set the catalog name to use.
`void` `setFunction(boolean function)` Specify whether this call is a function call.
`void` `setInParameterNames(Set<String> inParameterNames)` Set the names of in parameters to be used.
`void` `setProcedureName(String procedureName)` Set the name of the stored procedure.
`void` `setReturnValueRequired(boolean b)` Specify whether the call requires a rerurn value.
`void` `setSchemaName(String schemaName)` Set the schema name to use,

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logger

    protected final Log logger

  Logger available to subclasses

Constructor Detail

### AbstractJdbcCall

    protected AbstractJdbcCall(DataSource dataSource)

  Constructor to be used when initializing using a `DataSource`.

  Parameters:
    `dataSource` - the DataSource to be used

### AbstractJdbcCall

    protected AbstractJdbcCall(JdbcTemplate jdbcTemplate)

  Constructor to be used when initializing using a `JdbcTemplate`.

  Parameters:
    `jdbcTemplate` - the JdbcTemplate to use

Method Detail

### getJdbcTemplate

    public JdbcTemplate getJdbcTemplate()

  Get the configured `JdbcTemplate`

### getCallableStatementFactory

    protected CallableStatementCreatorFactory getCallableStatementFactory()

  Get the `CallableStatementCreatorFactory` being used

### setProcedureName

    public void setProcedureName(String procedureName)

  Set the name of the stored procedure.

### getProcedureName

    public String getProcedureName()

  Get the name of the stored procedure.

### setInParameterNames

    public void setInParameterNames(Set<String> inParameterNames)

  Set the names of in parameters to be used.

### getInParameterNames

    public Set<String> getInParameterNames()

  Get the names of in parameters to be used.

### setCatalogName

    public void setCatalogName(String catalogName)

  Set the catalog name to use.

### getCatalogName

    public String getCatalogName()

  Get the catalog name used.

### setSchemaName

    public void setSchemaName(String schemaName)

  Set the schema name to use,

### getSchemaName

    public String getSchemaName()

  Get the schema name used.

### setFunction

    public void setFunction(boolean function)

  Specify whether this call is a function call.

### isFunction

    public boolean isFunction()

  Is this call a function call?

### setReturnValueRequired

    public void setReturnValueRequired(boolean b)

  Specify whether the call requires a rerurn value.

### isReturnValueRequired

    public boolean isReturnValueRequired()

  Does the call require a return value?

### addDeclaredParameter

    public void addDeclaredParameter(SqlParameter parameter)

  Add a declared parameter to the list of parameters for the call. Only parameters declared as `SqlParameter` and `SqlInOutParameter` will be used to provide input values. This is different from the `StoredProcedure` class which for backwards compatibility reasons allows input values to be provided for parameters declared as `SqlOutParameter`.

  Parameters:
    `parameter` - the `SqlParameter` to add

### addDeclaredRowMapper

    public void addDeclaredRowMapper(String parameterName,
                                     RowMapper rowMapper)

  Add a `RowMapper` for the specified parameter or column.

  Parameters:
    `parameterName` - name of parameter or column
    `rowMapper` - the RowMapper implementation to use

### addDeclaredRowMapper

    @Deprecated
    public void addDeclaredRowMapper(String parameterName,
                                                ParameterizedRowMapper rowMapper)

  Deprecated. in favor of `addDeclaredRowMapper(String, org.springframework.jdbc.core.RowMapper)`

  Add a `RowMapper` for the specified parameter or column.

### getCallString

    public String getCallString()

  Get the call string that should be used based on parameters and meta data.

### setAccessCallParameterMetaData

    public void setAccessCallParameterMetaData(boolean accessCallParameterMetaData)

  Specify whether the parameter metadata for the call should be used. The default is true.

### compile

    public final void compile()
                       throws InvalidDataAccessApiUsageException

  Compile this JdbcCall using provided parameters and meta data plus other settings. This finalizes the configuration for this object and subsequent attempts to compile are ignored. This will be implicitly called the first time an un-compiled call is executed.

  Throws:
    `InvalidDataAccessApiUsageException` - if the object hasn't been correctly initialized, for example if no DataSource has been provided

### compileInternal

    protected void compileInternal()

  Method to perform the actual compilation. Subclasses can override this template method to perform their own compilation. Invoked after this base class's compilation is complete.

### onCompileInternal

    protected void onCompileInternal()

  Hook method that subclasses may override to react to compilation. This implementation does nothing.

### isCompiled

    public boolean isCompiled()

  Is this operation "compiled"?

  Returns:
    whether this operation is compiled, and ready to use.

### checkCompiled

    protected void checkCompiled()

  Check whether this operation has been compiled already; lazily compile it if not already compiled.

  Automatically called by `doExecute`.

### doExecute

    protected Map<String,Object> doExecute(SqlParameterSource parameterSource)

  Method that provides execution of the call using the passed in `SqlParameterSource`

  Parameters:
    `parameterSource` - parameter names and values to be used in call
  Returns:
    Map of out parameters

### doExecute

    protected Map<String,Object> doExecute(Object[] args)

  Method that provides execution of the call using the passed in array of parameters

  Parameters:
    `args` - array of parameter values; order must match the order declared for the stored procedure
  Returns:
    Map of out parameters

### doExecute

    protected Map<String,Object> doExecute(Map<String,?> args)

  Method that provides execution of the call using the passed in Map of parameters

  Parameters:
    `args` - Map of parameter name and values
  Returns:
    Map of out parameters

### getScalarOutParameterName

    protected String getScalarOutParameterName()

  Get the name of a single out parameter or return value. Used for functions or procedures with one out parameter.

### matchInParameterValuesWithCallParameters

    protected Map<String,Object> matchInParameterValuesWithCallParameters(SqlParameterSource parameterSource)

  Match the provided in parameter values with registered parameters and parameters defined via metadata processing.

  Parameters:
    `parameterSource` - the parameter vakues provided as a `SqlParameterSource`
  Returns:
    Map with parameter names and values

### matchInParameterValuesWithCallParameters

    protected Map<String,?> matchInParameterValuesWithCallParameters(Map<String,?> args)

  Match the provided in parameter values with registered parameters and parameters defined via metadata processing.

  Parameters:
    `args` - the parameter values provided in a Map
  Returns:
    Map with parameter names and values

### getCallParameters

    protected List<SqlParameter> getCallParameters()

  Get a List of all the call parameters to be used for call. This includes any parameters added based on meta data processing.