org.springframework.jdbc.core.namedparam

## Class BeanPropertySqlParameterSource

- java.lang.Object
- - org.springframework.jdbc.core.namedparam.AbstractSqlParameterSource
  - - org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource

- All Implemented Interfaces:
    SqlParameterSource

      public class BeanPropertySqlParameterSource
      extends AbstractSqlParameterSource

  `SqlParameterSource` implementation that obtains parameter values from bean properties of a given JavaBean object. The names of the bean properties have to match the parameter names.

  Uses a Spring BeanWrapper for bean property access underneath.

  Since:
    2.0
  Author:
    Thomas Risberg, Juergen Hoeller
  See Also:
    `NamedParameterJdbcTemplate`, `BeanWrapper`

- - ### Field Summary

    - ### Fields inherited from interface org.springframework.jdbc.core.namedparam.SqlParameterSource

      `TYPE_UNKNOWN`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BeanPropertySqlParameterSource(Object object)` Create a new BeanPropertySqlParameterSource for the given bean.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String[]` | `getReadablePropertyNames()` Provide access to the property names of the wrapped bean.
    `int` | `getSqlType(String paramName)` Derives a default SQL type from the corresponding property type.
    `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.

    - ### Methods inherited from class org.springframework.jdbc.core.namedparam.AbstractSqlParameterSource

      `getTypeName, registerSqlType, registerTypeName`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BeanPropertySqlParameterSource

          public BeanPropertySqlParameterSource(Object object)

      Create a new BeanPropertySqlParameterSource for the given bean.
      Parameters:
        `object` - the bean instance to wrap

  - ### Method Detail

    - #### hasValue

          public boolean hasValue(String paramName)

      Description copied from interface: `SqlParameterSource`
      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

          public Object getValue(String paramName)
                          throws IllegalArgumentException

      Description copied from interface: `SqlParameterSource`
      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

    - #### getReadablePropertyNames

          public String[] getReadablePropertyNames()

      Provide access to the property names of the wrapped bean. Uses support provided in the `PropertyAccessor` interface.
      Returns:
        an array containing all the known property names

    - #### getSqlType

          public int getSqlType(String paramName)

      Derives a default SQL type from the corresponding property type.
      Specified by:
        `getSqlType` in interface `SqlParameterSource`
      Overrides:
        `getSqlType` in class `AbstractSqlParameterSource`
      Parameters:
        `paramName` - the name of the parameter
      Returns:
        the SQL type of the parameter, or `TYPE_UNKNOWN` if not registered
      See Also:
        `StatementCreatorUtils.javaTypeToSqlParameterType(java.lang.Class<?>)`