org.mybatis.spring.batch
Class MyBatisBatchItemWriter<T>

java.lang.Object
  extended by org.mybatis.spring.batch.MyBatisBatchItemWriter<T>
All Implemented Interfaces:
org.springframework.batch.item.ItemWriter<T>, org.springframework.beans.factory.InitializingBean

public class MyBatisBatchItemWriter<T>
extends Object
implements org.springframework.batch.item.ItemWriter<T>, org.springframework.beans.factory.InitializingBean

ItemWriter that uses the batching features from SqlSessionTemplate to execute a batch of statements for all items provided.
Provided to facilitate the migration from Spring-Batch iBATIS 2 writers to MyBatis 3
The user must provide a MyBatis statement id that points to the SQL statement defined in the MyBatis.
It is expected that write(List) is called inside a transaction. If it is not each statement call will be autocommitted and flushStatements will return no results.
The writer is thread safe after its properties are set (normal singleton behavior), so it can be used to write in multiple concurrent transactions.

Since:
1.1.0

Field Summary
protected static org.apache.ibatis.logging.Log logger
           
 
Constructor Summary
MyBatisBatchItemWriter()
           
 
Method Summary
 void afterPropertiesSet()
          Check mandatory properties - there must be an SqlSession and a statementId.
 void setAssertUpdates(boolean assertUpdates)
          Public setter for the flag that determines whether an assertion is made that all items cause at least one row to be updated.
 void setSqlSessionFactory(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory)
          Public setter for SqlSessionFactory for injection purposes.
 void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate)
          Public setter for the SqlSessionTemplate.
 void setStatementId(String statementId)
          Public setter for the statement id identifying the statement in the SqlMap configuration file.
 void write(List<? extends T> items)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected static final org.apache.ibatis.logging.Log logger
Constructor Detail

MyBatisBatchItemWriter

public MyBatisBatchItemWriter()
Method Detail

setAssertUpdates

public void setAssertUpdates(boolean assertUpdates)
Public setter for the flag that determines whether an assertion is made that all items cause at least one row to be updated.

Parameters:
assertUpdates - the flag to set. Defaults to true;

setSqlSessionFactory

public void setSqlSessionFactory(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory)
Public setter for SqlSessionFactory for injection purposes.

Parameters:
SqlSessionFactory - sqlSessionFactory

setSqlSessionTemplate

public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate)
Public setter for the SqlSessionTemplate.

Parameters:
SqlSessionTemplate - the SqlSessionTemplate

setStatementId

public void setStatementId(String statementId)
Public setter for the statement id identifying the statement in the SqlMap configuration file.

Parameters:
statementId - the id for the statement

afterPropertiesSet

public void afterPropertiesSet()
Check mandatory properties - there must be an SqlSession and a statementId.

Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean

write

public void write(List<? extends T> items)

Specified by:
write in interface org.springframework.batch.item.ItemWriter<T>


Copyright © 2010-2012 MyBatis.org. All Rights Reserved.