org.springframework.jdbc.core.namedparam

## Interface SqlParameterSource

- All Known Implementing Classes:
    AbstractSqlParameterSource, BeanPropertySqlParameterSource, EmptySqlParameterSource, MapSqlParameterSource

      public interface SqlParameterSource

  Interface that defines common functionality for objects that can offer parameter values for named SQL parameters, serving as argument for `NamedParameterJdbcTemplate` operations.

  This interface allows for the specification of SQL type in addition to parameter values. All parameter values and types are identified by specifying the name of the parameter.

  Intended to wrap various implementations like a Map or a JavaBean with a consistent interface.

  Since:
    2.0
  Author:
    Thomas Risberg, Juergen Hoeller
  See Also:
    `NamedParameterJdbcOperations`, `NamedParameterJdbcTemplate`, `MapSqlParameterSource`, `BeanPropertySqlParameterSource`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `TYPE_UNKNOWN` Constant that indicates an unknown (or unspecified) SQL type.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getSqlType(String paramName)` Determine the SQL type for the specified named parameter.
    `String` | `getTypeName(String paramName)` Determine the type name for the specified named parameter.
    `Object` | `getValue(String paramName)` Return the parameter value for the requested named parameter.
    `boolean` | `hasValue(String paramName)` Determine whether there is a value for the specified named parameter.

- - ### Field Detail

    - #### TYPE_UNKNOWN

          static final int TYPE_UNKNOWN

      Constant that indicates an unknown (or unspecified) SQL type. To be returned from `getType` when no specific SQL type known.
      See Also:
        `getSqlType(java.lang.String)`, `Types`, Constant Field Values

  - ### Method Detail

    - #### hasValue

          boolean hasValue(String paramName)

      Determine whether there is a value for the specified named parameter.
      Parameters:
        `paramName` - the name of the parameter
      Returns:
        whether there is a value defined

    - #### getValue

          Object getValue(String paramName)
                          throws IllegalArgumentException

      Return the parameter value for the requested named parameter.
      Parameters:
        `paramName` - the name of the parameter
      Returns:
        the value of the specified parameter
      Throws:
        `IllegalArgumentException` - if there is no value for the requested parameter

    - #### getSqlType

          int getSqlType(String paramName)

      Determine the SQL type for the specified named parameter.
      Parameters:
        `paramName` - the name of the parameter
      Returns:
        the SQL type of the specified parameter, or `TYPE_UNKNOWN` if not known
      See Also:
        `TYPE_UNKNOWN`

    - #### getTypeName

          String getTypeName(String paramName)

      Determine the type name for the specified named parameter.
      Parameters:
        `paramName` - the name of the parameter
      Returns:
        the type name of the specified parameter, or `null` if not known