org.springframework.orm.ibatis
Interface SqlMapClientCallback<T>


public interface SqlMapClientCallback<T>

Callback interface for data access code that works with the iBATIS SqlMapExecutor interface. To be used with SqlMapClientTemplate's execute method, assumably often as anonymous classes within a method implementation.

Since:
24.02.2004
Author:
Juergen Hoeller
See Also:
SqlMapClientTemplate, DataSourceTransactionManager

Method Summary
 T doInSqlMapClient(com.ibatis.sqlmap.client.SqlMapExecutor executor)
          Gets called by SqlMapClientTemplate.execute with an active SqlMapExecutor.
 

Method Detail

doInSqlMapClient

T doInSqlMapClient(com.ibatis.sqlmap.client.SqlMapExecutor executor)
                   throws SQLException
Gets called by SqlMapClientTemplate.execute with an active SqlMapExecutor. Does not need to care about activating or closing the SqlMapExecutor, or handling transactions.

If called without a thread-bound JDBC transaction (initiated by DataSourceTransactionManager), the code will simply get executed on the underlying JDBC connection with its transactional semantics. If using a JTA-aware DataSource, the JDBC connection and thus the callback code will be transactional if a JTA transaction is active.

Allows for returning a result object created within the callback, i.e. a domain object or a collection of domain objects. A thrown custom RuntimeException is treated as an application exception: It gets propagated to the caller of the template.

Parameters:
executor - an active iBATIS SqlMapSession, passed-in as SqlMapExecutor interface here to avoid manual lifecycle handling
Returns:
a result object, or null if none
Throws:
SQLException - if thrown by the iBATIS SQL Maps API
See Also:
SqlMapClientTemplate.execute(org.springframework.orm.ibatis.SqlMapClientCallback), SqlMapClientTemplate.executeWithListResult(org.springframework.orm.ibatis.SqlMapClientCallback), SqlMapClientTemplate.executeWithMapResult(org.springframework.orm.ibatis.SqlMapClientCallback)