Class CallMetaDataContext

java.lang.Object
org.springframework.jdbc.core.metadata.CallMetaDataContext

public class CallMetaDataContext extends Object
Class to manage context meta-data used for the configuration and execution of a stored procedure call.
Since:
2.5
Author:
Thomas Risberg, Juergen Hoeller, Kiril Nugmanov
  • Field Details

    • logger

      protected final Log logger
  • Constructor Details

    • CallMetaDataContext

      public CallMetaDataContext()
  • Method Details

    • setFunctionReturnName

      public void setFunctionReturnName(String functionReturnName)
      Specify the name used for the return value of the function.
    • getFunctionReturnName

      public String getFunctionReturnName()
      Get the name used for the return value of the function.
    • setLimitedInParameterNames

      public void setLimitedInParameterNames(Set<String> limitedInParameterNames)
      Specify a limited set of the in parameters to be used.
    • getLimitedInParameterNames

      public Set<String> getLimitedInParameterNames()
      Get the limited set of the in parameters to be used.
    • setOutParameterNames

      public void setOutParameterNames(List<String> outParameterNames)
      Specify the names of the out parameters.
    • getOutParameterNames

      public List<String> getOutParameterNames()
      Get the list of the out parameter names.
    • setProcedureName

      public void setProcedureName(@Nullable String procedureName)
      Specify the name of the procedure.
    • getProcedureName

      @Nullable public String getProcedureName()
      Get the name of the procedure.
    • setCatalogName

      public void setCatalogName(@Nullable String catalogName)
      Specify the name of the catalog.
    • getCatalogName

      @Nullable public String getCatalogName()
      Get the name of the catalog.
    • setSchemaName

      public void setSchemaName(@Nullable String schemaName)
      Specify the name of the schema.
    • getSchemaName

      @Nullable public String getSchemaName()
      Get the name of the schema.
    • setFunction

      public void setFunction(boolean function)
      Specify whether this call is a function call.
    • isFunction

      public boolean isFunction()
      Check whether this call is a function call.
    • setReturnValueRequired

      public void setReturnValueRequired(boolean returnValueRequired)
      Specify whether a return value is required.
    • isReturnValueRequired

      public boolean isReturnValueRequired()
      Check whether a return value is required.
    • setAccessCallParameterMetaData

      public void setAccessCallParameterMetaData(boolean accessCallParameterMetaData)
      Specify whether call parameter meta-data should be accessed.
    • isAccessCallParameterMetaData

      public boolean isAccessCallParameterMetaData()
      Check whether call parameter meta-data should be accessed.
    • setNamedBinding

      public void setNamedBinding(boolean namedBinding)
      Specify whether parameters should be bound by name.
      Since:
      4.2
    • isNamedBinding

      public boolean isNamedBinding()
      Check whether parameters should be bound by name.
      Since:
      4.2
    • initializeMetaData

      public void initializeMetaData(DataSource dataSource)
      Initialize this class with meta-data from the database.
      Parameters:
      dataSource - the DataSource used to retrieve meta-data
    • createReturnResultSetParameter

      public SqlParameter createReturnResultSetParameter(String parameterName, RowMapper<?> rowMapper)
      Create a ReturnResultSetParameter/SqlOutParameter depending on the support provided by the JDBC driver used for the database in use.
      Parameters:
      parameterName - the name of the parameter (also used as the name of the List returned in the output)
      rowMapper - a RowMapper implementation used to map the data returned in the result set
      Returns:
      the appropriate SqlParameter
    • getScalarOutParameterName

      @Nullable public String getScalarOutParameterName()
      Get the name of the single out parameter for this call. If there are multiple parameters, the name of the first one will be returned.
    • getCallParameters

      public List<SqlParameter> getCallParameters()
      Get the List of SqlParameter objects to be used in call execution.
    • processParameters

      public void processParameters(List<SqlParameter> parameters)
      Process the list of parameters provided, and if procedure column meta-data is used, the parameters will be matched against the meta-data information and any missing ones will be automatically included.
      Parameters:
      parameters - the list of parameters to use as a base
    • reconcileParameters

      protected List<SqlParameter> reconcileParameters(List<SqlParameter> parameters)
      Reconcile the provided parameters with available meta-data and add new ones where appropriate.
    • matchInParameterValuesWithCallParameters

      public Map<String,Object> matchInParameterValuesWithCallParameters(SqlParameterSource parameterSource)
      Match input parameter values with the parameters declared to be used in the call.
      Parameters:
      parameterSource - the input values
      Returns:
      a Map containing the matched parameter names with the value taken from the input
    • matchInParameterValuesWithCallParameters

      public Map<String,?> matchInParameterValuesWithCallParameters(Map<String,?> inParameters)
      Match input parameter values with the parameters declared to be used in the call.
      Parameters:
      inParameters - the input values
      Returns:
      a Map containing the matched parameter names with the value taken from the input
    • matchInParameterValuesWithCallParameters

      public Map<String,?> matchInParameterValuesWithCallParameters(Object[] parameterValues)
    • createCallString

      public String createCallString()
      Build the call string based on configuration and meta-data information.
      Returns:
      the call string to be used
    • createParameterBinding

      protected String createParameterBinding(SqlParameter parameter)
      Build the parameter binding fragment.
      Parameters:
      parameter - call parameter
      Returns:
      parameter binding fragment
      Since:
      4.2