Class AbstractSqlTypeValue
- java.lang.Object
- org.springframework.jdbc.core.support.AbstractSqlTypeValue
- All Implemented Interfaces:
SqlTypeValue
public abstract class AbstractSqlTypeValue extends Object implements SqlTypeValue
Abstract implementation of the SqlTypeValue interface, for convenient creation of type values that are supposed to be passed into thePreparedStatement.setObject
method. ThecreateTypeValue
callback method has access to the underlying Connection, if that should be needed to create any database-specific objects.A usage example from a StoredProcedure (compare this to the plain SqlTypeValue version in the superclass javadoc):
proc.declareParameter(new SqlParameter("myarray", Types.ARRAY, "NUMBERS")); ... Map<String, Object> in = new HashMap<String, Object>(); in.put("myarray", new AbstractSqlTypeValue() { public Object createTypeValue(Connection con, int sqlType, String typeName) throws SQLException { oracle.sql.ArrayDescriptor desc = new oracle.sql.ArrayDescriptor(typeName, con); return new oracle.sql.ARRAY(desc, con, seats); } }); Map out = execute(in);
- Since:
- 1.1
- Author:
- Juergen Hoeller
- See Also:
PreparedStatement.setObject(int, Object, int)
,StoredProcedure
Field Summary
Fields inherited from interface org.springframework.jdbc.core.SqlTypeValue
TYPE_UNKNOWN
Constructor Summary
Constructors Constructor Description AbstractSqlTypeValue()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Object
createTypeValue(Connection con, int sqlType, String typeName)
Create the type value to be passed intoPreparedStatement.setObject
.void
setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, String typeName)
Set the type value on the given PreparedStatement.
Constructor Detail
AbstractSqlTypeValue
public AbstractSqlTypeValue()
Method Detail
setTypeValue
public final void setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, @Nullable String typeName) throws SQLException
Description copied from interface:SqlTypeValue
Set the type value on the given PreparedStatement.- Specified by:
setTypeValue
in interfaceSqlTypeValue
- Parameters:
ps
- the PreparedStatement to work onparamIndex
- the index of the parameter for which we need to set the valuesqlType
- the SQL type of the parameter we are settingtypeName
- the type name of the parameter (optional)- Throws:
SQLException
- if an SQLException is encountered while setting parameter values- See Also:
Types
,PreparedStatement.setObject(int, java.lang.Object, int)
createTypeValue
protected abstract Object createTypeValue(Connection con, int sqlType, @Nullable String typeName) throws SQLException
Create the type value to be passed intoPreparedStatement.setObject
.- Parameters:
con
- the JDBC Connection, if needed to create any database-specific objectssqlType
- the SQL type of the parameter we are settingtypeName
- the type name of the parameter- Returns:
- the type value
- Throws:
SQLException
- if an SQLException is encountered setting parameter values (that is, there's no need to catch SQLException)- See Also:
PreparedStatement.setObject(int, Object, int)