Class SqlMapClientTemplate

java.lang.Object
org.springframework.jdbc.support.JdbcAccessor
org.springframework.orm.ibatis.SqlMapClientTemplate
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, SqlMapClientOperations

@Deprecated public class SqlMapClientTemplate extends org.springframework.jdbc.support.JdbcAccessor implements SqlMapClientOperations
Deprecated.
as of Spring 3.2, in favor of the native Spring support in the Mybatis follow-up project (https://mybatis.org/)
Helper class that simplifies data access via the iBATIS SqlMapClient API, converting checked SQLExceptions into unchecked DataAccessExceptions, following the org.springframework.dao exception hierarchy. Uses the same SQLExceptionTranslator mechanism as JdbcTemplate.

The main method of this class executes a callback that implements a data access action. Furthermore, this class provides numerous convenience methods that mirror SqlMapExecutor's execution methods.

It is generally recommended to use the convenience methods on this template for plain query/insert/update/delete operations. However, for more complex operations like batch updates, a custom SqlMapClientCallback must be implemented, usually as anonymous inner class. For example:

getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
  public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
    executor.startBatch();
    executor.update("insertSomething", "myParamValue");
    executor.update("insertSomethingElse", "myOtherParamValue");
    executor.executeBatch();
    return null;
  }
});
The template needs a SqlMapClient to work on, passed in via the "sqlMapClient" property. A Spring context typically uses a SqlMapClientFactoryBean to build the SqlMapClient. The template can additionally be configured with a DataSource for fetching Connections, although this is not necessary if a DataSource is specified for the SqlMapClient itself (typically through SqlMapClientFactoryBean's "dataSource" property).
Since:
24.02.2004
Author:
Juergen Hoeller
See Also:
  • Constructor Details

    • SqlMapClientTemplate

      public SqlMapClientTemplate()
      Deprecated.
      Create a new SqlMapClientTemplate.
    • SqlMapClientTemplate

      public SqlMapClientTemplate(com.ibatis.sqlmap.client.SqlMapClient sqlMapClient)
      Deprecated.
      Create a new SqlMapTemplate.
      Parameters:
      sqlMapClient - iBATIS SqlMapClient that defines the mapped statements
    • SqlMapClientTemplate

      public SqlMapClientTemplate(DataSource dataSource, com.ibatis.sqlmap.client.SqlMapClient sqlMapClient)
      Deprecated.
      Create a new SqlMapTemplate.
      Parameters:
      dataSource - JDBC DataSource to obtain connections from
      sqlMapClient - iBATIS SqlMapClient that defines the mapped statements
  • Method Details

    • setSqlMapClient

      public void setSqlMapClient(com.ibatis.sqlmap.client.SqlMapClient sqlMapClient)
      Deprecated.
      Set the iBATIS Database Layer SqlMapClient that defines the mapped statements.
      Parameters:
      sqlMapClient - the SqlMapClient to use
    • getSqlMapClient

      public com.ibatis.sqlmap.client.SqlMapClient getSqlMapClient()
      Deprecated.
      Return the iBATIS Database Layer SqlMapClient that this template works with.
      Returns:
      the SqlMapClient
    • getDataSource

      public DataSource getDataSource()
      Deprecated.
      If no DataSource specified, use SqlMapClient's DataSource.
      Overrides:
      getDataSource in class org.springframework.jdbc.support.JdbcAccessor
      See Also:
      • SqlMapTransactionManager.getDataSource()
    • afterPropertiesSet

      public void afterPropertiesSet()
      Deprecated.
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Overrides:
      afterPropertiesSet in class org.springframework.jdbc.support.JdbcAccessor
    • execute

      public <T> T execute(SqlMapClientCallback<T> action) throws org.springframework.dao.DataAccessException
      Deprecated.
      Execute the given data access action on a SqlMapExecutor.
      Type Parameters:
      T - the result type
      Parameters:
      action - callback object that specifies the data access action
      Returns:
      a result object returned by the action, or null
      Throws:
      org.springframework.dao.DataAccessException - in case of SQL Maps errors
    • executeWithListResult

      @Deprecated public List executeWithListResult(SqlMapClientCallback<List> action) throws org.springframework.dao.DataAccessException
      Deprecated.
      as of Spring 3.0 - not really needed anymore with generic execute(SqlMapClientCallback) method
      Execute the given data access action on a SqlMapExecutor, expecting a List result.
      Parameters:
      action - callback object that specifies the data access action
      Returns:
      the List result
      Throws:
      org.springframework.dao.DataAccessException - in case of SQL Maps errors
    • executeWithMapResult

      @Deprecated public Map executeWithMapResult(SqlMapClientCallback<Map> action) throws org.springframework.dao.DataAccessException
      Deprecated.
      as of Spring 3.0 - not really needed anymore with generic execute(SqlMapClientCallback) method
      Execute the given data access action on a SqlMapExecutor, expecting a Map result.
      Parameters:
      action - callback object that specifies the data access action
      Returns:
      the Map result
      Throws:
      org.springframework.dao.DataAccessException - in case of SQL Maps errors
    • queryForObject

      public Object queryForObject(String statementName) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForObject in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForObject(String)
    • queryForObject

      public Object queryForObject(String statementName, Object parameterObject) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForObject in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForObject(String, Object)
    • queryForObject

      public Object queryForObject(String statementName, Object parameterObject, Object resultObject) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForObject in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForObject(String, Object, Object)
    • queryForList

      public List queryForList(String statementName) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForList in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForList(String)
    • queryForList

      public List queryForList(String statementName, Object parameterObject) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForList in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForList(String, Object)
    • queryForList

      public List queryForList(String statementName, int skipResults, int maxResults) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForList in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForList(String, int, int)
    • queryForList

      public List queryForList(String statementName, Object parameterObject, int skipResults, int maxResults) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForList in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForList(String, Object, int, int)
    • queryWithRowHandler

      public void queryWithRowHandler(String statementName, com.ibatis.sqlmap.client.event.RowHandler rowHandler) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryWithRowHandler in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryWithRowHandler(String, RowHandler)
    • queryWithRowHandler

      public void queryWithRowHandler(String statementName, Object parameterObject, com.ibatis.sqlmap.client.event.RowHandler rowHandler) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryWithRowHandler in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryWithRowHandler(String, Object, RowHandler)
    • queryForMap

      public Map queryForMap(String statementName, Object parameterObject, String keyProperty) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForMap in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForMap(String, Object, String)
    • queryForMap

      public Map queryForMap(String statementName, Object parameterObject, String keyProperty, String valueProperty) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      queryForMap in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.queryForMap(String, Object, String, String)
    • insert

      public Object insert(String statementName) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      insert in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.insert(String)
    • insert

      public Object insert(String statementName, Object parameterObject) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      insert in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.insert(String, Object)
    • update

      public int update(String statementName) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      update in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.update(String)
    • update

      public int update(String statementName, Object parameterObject) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      update in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.update(String, Object)
    • update

      public void update(String statementName, Object parameterObject, int requiredRowsAffected) throws org.springframework.dao.DataAccessException
      Deprecated.
      Description copied from interface: SqlMapClientOperations
      Convenience method provided by Spring: execute an update operation with an automatic check that the update affected the given required number of rows.
      Specified by:
      update in interface SqlMapClientOperations
      Parameters:
      statementName - the name of the mapped statement
      parameterObject - the parameter object
      requiredRowsAffected - the number of rows that the update is required to affect
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
    • delete

      public int delete(String statementName) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      delete in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.delete(String)
    • delete

      public int delete(String statementName, Object parameterObject) throws org.springframework.dao.DataAccessException
      Deprecated.
      Specified by:
      delete in interface SqlMapClientOperations
      Throws:
      org.springframework.dao.DataAccessException - in case of errors
      See Also:
      • SqlMapExecutor.delete(String, Object)
    • delete

      public void delete(String statementName, Object parameterObject, int requiredRowsAffected) throws org.springframework.dao.DataAccessException
      Deprecated.
      Description copied from interface: SqlMapClientOperations
      Convenience method provided by Spring: execute a delete operation with an automatic check that the delete affected the given required number of rows.
      Specified by:
      delete in interface SqlMapClientOperations
      Parameters:
      statementName - the name of the mapped statement
      parameterObject - the parameter object
      requiredRowsAffected - the number of rows that the delete is required to affect
      Throws:
      org.springframework.dao.DataAccessException - in case of errors