org.springframework.orm.ibatis.support

## Class AbstractLobTypeHandler

- java.lang.Object
- - com.ibatis.sqlmap.engine.type.BaseTypeHandler
  - - org.springframework.orm.ibatis.support.AbstractLobTypeHandler

- All Implemented Interfaces:
    TypeHandler
  Direct Known Subclasses:
    BlobByteArrayTypeHandler, BlobSerializableTypeHandler, ClobStringTypeHandler

  Deprecated.
  as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (http://code.google.com/p/mybatis/)

      @Deprecated
      public abstract class AbstractLobTypeHandler
      extends BaseTypeHandler

  Abstract base class for iBATIS TypeHandler implementations that map to LOBs. Retrieves the LobHandler to use from SqlMapClientFactoryBean at config time.

  For writing LOBs, an active Spring transaction synchronization is required, to be able to register a synchronization that closes the LobCreator.

  Offers template methods for setting parameters and getting result values, passing in the LobHandler or LobCreator to use.

  Since:
    1.1.5
  Author:
    Juergen Hoeller
  See Also:
    `LobHandler`, `LobCreator`, `SqlMapClientFactoryBean.setLobHandler(org.springframework.jdbc.support.lob.LobHandler)`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `LOB_CREATOR_SYNCHRONIZATION_ORDER` Deprecated. Order value for TransactionSynchronization objects that clean up LobCreators.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `AbstractLobTypeHandler()` Deprecated. Constructor used by iBATIS: fetches config-time LobHandler from SqlMapClientFactoryBean.
    `protected` | `AbstractLobTypeHandler(LobHandler lobHandler)` Deprecated. Constructor used for testing: takes an explicit LobHandler.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `getResult(CallableStatement cs, int columnIndex)` Deprecated. This implementation always throws a SQLException: retrieving LOBs from a CallableStatement is not supported.
    `Object` | `getResult(ResultSet rs, int columnIndex)` Deprecated. This implementation delegates to getResultInternal, passing in the LobHandler of this type.
    `Object` | `getResult(ResultSet rs, String columnName)` Deprecated. This implementation delegates to the getResult version that takes a column index.
    `protected abstract Object` | `getResultInternal(ResultSet rs, int index, LobHandler lobHandler)` Deprecated. Template method to extract a value from the given result set.
    `void` | `setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType)` Deprecated. This implementation delegates to setParameterInternal, passing in a transaction-synchronized LobCreator for the LobHandler of this type.
    `protected abstract void` | `setParameterInternal(PreparedStatement ps, int index, Object value, String jdbcType, LobCreator lobCreator)` Deprecated. Template method to set the given value on the given statement.

    - ### Methods inherited from class com.ibatis.sqlmap.engine.type.BaseTypeHandler

      `equals`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface com.ibatis.sqlmap.engine.type.TypeHandler

      `valueOf`

- - ### Field Detail

    - #### LOB_CREATOR_SYNCHRONIZATION_ORDER

          public static final int LOB_CREATOR_SYNCHRONIZATION_ORDER

      Deprecated.
      Order value for TransactionSynchronization objects that clean up LobCreators. Return DataSourceUtils.#CONNECTION_SYNCHRONIZATION_ORDER - 100 to execute LobCreator cleanup before JDBC Connection cleanup, if any.
      See Also:
        `DataSourceUtils.CONNECTION_SYNCHRONIZATION_ORDER`, Constant Field Values

  - ### Constructor Detail

    - #### AbstractLobTypeHandler

          public AbstractLobTypeHandler()

      Deprecated.
      Constructor used by iBATIS: fetches config-time LobHandler from SqlMapClientFactoryBean.
      See Also:
        `SqlMapClientFactoryBean.getConfigTimeLobHandler()`

    - #### AbstractLobTypeHandler

          protected AbstractLobTypeHandler(LobHandler lobHandler)

      Deprecated.
      Constructor used for testing: takes an explicit LobHandler.

  - ### Method Detail

    - #### setParameter

          public final void setParameter(PreparedStatement ps,
                          int i,
                          Object parameter,
                          String jdbcType)
                                  throws SQLException

      Deprecated.
      This implementation delegates to setParameterInternal, passing in a transaction-synchronized LobCreator for the LobHandler of this type.
      Throws:
        `SQLException`
      See Also:
        `setParameterInternal(java.sql.PreparedStatement, int, java.lang.Object, java.lang.String, org.springframework.jdbc.support.lob.LobCreator)`

    - #### getResult

          public final Object getResult(ResultSet rs,
                         String columnName)
                                 throws SQLException

      Deprecated.
      This implementation delegates to the getResult version that takes a column index.
      Throws:
        `SQLException`
      See Also:
        `getResult(java.sql.ResultSet, String)`, `ResultSet.findColumn(java.lang.String)`

    - #### getResult

          public final Object getResult(ResultSet rs,
                         int columnIndex)
                                 throws SQLException

      Deprecated.
      This implementation delegates to getResultInternal, passing in the LobHandler of this type.
      Throws:
        `SQLException`
      See Also:
        `getResultInternal(java.sql.ResultSet, int, org.springframework.jdbc.support.lob.LobHandler)`

    - #### getResult

          public Object getResult(CallableStatement cs,
                         int columnIndex)
                           throws SQLException

      Deprecated.
      This implementation always throws a SQLException: retrieving LOBs from a CallableStatement is not supported.
      Throws:
        `SQLException`

    - #### setParameterInternal

          protected abstract void setParameterInternal(PreparedStatement ps,
                                  int index,
                                  Object value,
                                  String jdbcType,
                                  LobCreator lobCreator)
                                                throws SQLException,
                                                       IOException

      Deprecated.
      Template method to set the given value on the given statement.
      Parameters:
        `ps` - the PreparedStatement to set on
        `index` - the statement parameter index
        `value` - the parameter value to set
        `jdbcType` - the JDBC type of the parameter
        `lobCreator` - the LobCreator to use
      Throws:
        `SQLException` - if thrown by JDBC methods
        `IOException` - if thrown by streaming methods

    - #### getResultInternal

          protected abstract Object getResultInternal(ResultSet rs,
                                 int index,
                                 LobHandler lobHandler)
                                               throws SQLException,
                                                      IOException

      Deprecated.
      Template method to extract a value from the given result set.
      Parameters:
        `rs` - the ResultSet to extract from
        `index` - the index in the ResultSet
        `lobHandler` - the LobHandler to use
      Returns:
        the extracted value
      Throws:
        `SQLException` - if thrown by JDBC methods
        `IOException` - if thrown by streaming methods