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 the PreparedStatement.setObject method. The createTypeValue 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:
  • Constructor Details

    • AbstractSqlTypeValue

      public AbstractSqlTypeValue()
  • Method Details

    • 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 interface SqlTypeValue
      Parameters:
      ps - the PreparedStatement to work on
      paramIndex - the index of the parameter for which we need to set the value
      sqlType - the SQL type of the parameter we are setting
      typeName - the type name of the parameter (optional)
      Throws:
      SQLException - if an SQLException is encountered while setting parameter values
      See Also:
    • createTypeValue

      protected abstract Object createTypeValue(Connection con, int sqlType, @Nullable String typeName) throws SQLException
      Create the type value to be passed into PreparedStatement.setObject.
      Parameters:
      con - the JDBC Connection, if needed to create any database-specific objects
      sqlType - the SQL type of the parameter we are setting
      typeName - 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: