org.springframework.jdbc.core.metadata

Class CallMetaDataContext

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


  • public class CallMetaDataContext
    extends java.lang.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 Detail

      • logger

        protected final Log logger
    • Constructor Detail

      • CallMetaDataContext

        public CallMetaDataContext()
    • Method Detail

      • setFunctionReturnName

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

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

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

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

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

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

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

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

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

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

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

        @Nullable
        public java.lang.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(javax.sql.DataSource dataSource)
        Initialize this class with meta-data from the database.
        Parameters:
        dataSource - the DataSource used to retrieve meta-data
      • createReturnResultSetParameter

        public SqlParameter createReturnResultSetParameter(java.lang.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 java.lang.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 java.util.List<SqlParameter> getCallParameters()
        Get the List of SqlParameter objects to be used in call execution.
      • processParameters

        public void processParameters(java.util.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 java.util.List<SqlParameter> reconcileParameters(java.util.List<SqlParameter> parameters)
        Reconcile the provided parameters with available meta-data and add new ones where appropriate.
      • matchInParameterValuesWithCallParameters

        public java.util.Map<java.lang.String,java.lang.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 java.util.Map<java.lang.String,?> matchInParameterValuesWithCallParameters(java.util.Map<java.lang.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 java.util.Map<java.lang.String,?> matchInParameterValuesWithCallParameters(java.lang.Object[] parameterValues)
      • createCallString

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

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