网上很多类似方法,但是都解决不了事物问题,下面是用事物模板来控制的
首先上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效率最高
原创,非抄袭
,转载请注明出处
mybatis 批量insert、update java事物实现
猜你喜欢
转载自cr266.iteye.com/blog/2107395
今日推荐
周排行