org.springframework.jdbc.core

## Interface SqlTypeValue

- All Known Subinterfaces:
    DisposableSqlTypeValue
  All Known Implementing Classes:
    AbstractSqlTypeValue, SqlLobValue

      public interface SqlTypeValue

  Interface to be implemented for setting values for more complex database-specific types not supported by the standard `setObject` method. This is effectively an extended variant of `SqlValue`.

  Implementations perform the actual work of setting the actual values. They must implement the callback method `setTypeValue` which can throw SQLExceptions that will be caught and translated by the calling code. This callback method has access to the underlying Connection via the given PreparedStatement object, if that should be needed to create any database-specific objects.

  Since:
    1.1
  Author:
    Thomas Risberg, Juergen Hoeller
  See Also:
    `Types`, `PreparedStatement.setObject(int, java.lang.Object, int)`, `JdbcOperations.update(String, Object[], int[])`, `SqlValue`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `TYPE_UNKNOWN` Constant that indicates an unknown (or unspecified) SQL type.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `setTypeValue(PreparedStatement ps, int paramIndex, int sqlType, String typeName)` Set the type value on the given PreparedStatement.

- - ### Field Detail

    - #### TYPE_UNKNOWN

          static final int TYPE_UNKNOWN

      Constant that indicates an unknown (or unspecified) SQL type. Passed into `setTypeValue` if the original operation method does not specify a SQL type.
      See Also:
        `Types`, `JdbcOperations.update(String, Object[])`, Constant Field Values

  - ### Method Detail

    - #### setTypeValue

          void setTypeValue(PreparedStatement ps,
                            int paramIndex,
                            int sqlType,
                            String typeName)
                     throws SQLException

      Set the type value on the given PreparedStatement.
      Parameters:
        `ps` - the PreparedStatement to work on
        `paramIndex` - the index of the parameter for which we need to set the value
        `sqlType` - SQL type of the parameter we are setting
        `typeName` - the type name of the parameter (optional)
      Throws:
        `SQLException` - if a SQLException is encountered while setting parameter values
      See Also:
        `Types`, `PreparedStatement.setObject(int, java.lang.Object, int)`