org.springframework.jdbc.core.namedparam
Class BeanPropertySqlParameterSource

java.lang.Object
  extended by org.springframework.jdbc.core.namedparam.AbstractSqlParameterSource
      extended by 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
BeanPropertySqlParameterSource(Object object)
          Create a new BeanPropertySqlParameterSource for the given bean.
 
Method Summary
 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)