public abstract class

AbstractLobTypeHandler

extends BaseTypeHandler
java.lang.Object
   ↳ BaseTypeHandler
     ↳ org.springframework.orm.ibatis.support.AbstractLobTypeHandler
Known Direct Subclasses

Class Overview

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.

Summary

Constants
int LOB_CREATOR_SYNCHRONIZATION_ORDER Order value for TransactionSynchronization objects that clean up LobCreators.
Public Constructors
AbstractLobTypeHandler()
Constructor used by iBATIS: fetches config-time LobHandler from SqlMapClientFactoryBean.
Protected Constructors
AbstractLobTypeHandler(LobHandler lobHandler)
Constructor used for testing: takes an explicit LobHandler.
Public Methods
final Object getResult(ResultSet rs, String columnName)
This implementation delegates to the getResult version that takes a column index.
Object getResult(CallableStatement cs, int columnIndex)
This implementation always throws a SQLException: retrieving LOBs from a CallableStatement is not supported.
final Object getResult(ResultSet rs, int columnIndex)
This implementation delegates to getResultInternal, passing in the LobHandler of this type.
final void setParameter(PreparedStatement ps, int i, Object parameter, String jdbcType)
This implementation delegates to setParameterInternal, passing in a transaction-synchronized LobCreator for the LobHandler of this type.
Protected Methods
abstract Object getResultInternal(ResultSet rs, int index, LobHandler lobHandler)
Template method to extract a value from the given result set.
abstract void setParameterInternal(PreparedStatement ps, int index, Object value, String jdbcType, LobCreator lobCreator)
Template method to set the given value on the given statement.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int LOB_CREATOR_SYNCHRONIZATION_ORDER

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.

Constant Value: 800 (0x00000320)

Public Constructors

public AbstractLobTypeHandler ()

Constructor used by iBATIS: fetches config-time LobHandler from SqlMapClientFactoryBean.

Protected Constructors

protected AbstractLobTypeHandler (LobHandler lobHandler)

Constructor used for testing: takes an explicit LobHandler.

Public Methods

public final Object getResult (ResultSet rs, String columnName)

This implementation delegates to the getResult version that takes a column index.

Throws
SQLException

public Object getResult (CallableStatement cs, int columnIndex)

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

Throws
SQLException

public final Object getResult (ResultSet rs, int columnIndex)

This implementation delegates to getResultInternal, passing in the LobHandler of this type.

Throws
SQLException

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

This implementation delegates to setParameterInternal, passing in a transaction-synchronized LobCreator for the LobHandler of this type.

Throws
SQLException

Protected Methods

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

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

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

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