org.springframework.jdbc.core

## Interface SqlReturnType

-     public interface SqlReturnType

  Interface to be implemented for retrieving values for more complex database-specific types not supported by the standard `CallableStatement.getObject` method.

  Implementations perform the actual work of getting the actual values. They must implement the callback method `getTypeValue` 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 CallableStatement object, if that should be needed to create any database-specific objects.

  Since:
    1.1
  Author:
    Thomas Risberg
  See Also:
    `Types`, `CallableStatement.getObject(int)`, `StoredProcedure.execute(java.util.Map)`

- - ### Field Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `getTypeValue(CallableStatement cs, int paramIndex, int sqlType, String typeName)` Get the type value from the specific object.

- - ### 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

    - #### getTypeValue

          Object getTypeValue(CallableStatement cs,
                            int paramIndex,
                            int sqlType,
                            String typeName)
                              throws SQLException

      Get the type value from the specific object.
      Parameters:
        `cs` - the CallableStatement to operate 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
      Returns:
        the target value
      Throws:
        `SQLException` - if a SQLException is encountered setting parameter values (that is, there's no need to catch SQLException)
      See Also:
        `Types`, `CallableStatement.getObject(int)`