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
`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)`