`
cr266
  • 浏览: 3028 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

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效率最高

原创,非抄袭,转载请注明出处
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics