mybatis 批量insert、update java事物实现

网上很多类似方法,但是都解决不了事物问题,下面是用事物模板来控制的

首先上java方法:
public void batchInsert(final List<Object> dataList) {
        final SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH,false);
transactionTemplate.execute(new TransactionCallback<String>() {
@Override
public String doInTransaction(TransactionStatus status) {
try {
            for (Object value : dataList) {
            session.insert("com.pinganfu.mpmt.common.dal.dao.MpmtPayTransDetailDao.insertData",value);//这里传的是包含namespace的sqlId
            }
            session.commit();
}finally{
session.clearCache();
session.close();
}
return null;
}
});
   }

xml中的配置:
<bean id="mpmtPaymentBatchDao" class="com.pinganfu.mpmt.common.dal.dao.impl.MpmtPaymentBatchDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory" />
<property name="transactionTemplate" ref="transactionTemplate"/>
</bean>

这样的话,技能保证事务性,又能实现批量插入,根据本人的测试,list大小2000效率最高

原创,非抄袭 ,转载请注明出处

猜你喜欢

转载自cr266.iteye.com/blog/2107395