问题:
项目中使用了MyBatis但是默认的就是一次进行插入一条,但是这样速度就会极度下降,所以使用批量插入网上查找了很多,总结一下:
解决方案:
主要要注意的点就是这个sqlSessionFactory通过注解直接注入,其他都是大同小异,demoMapper改成自己的mapper
//直接注入获取本地
@Autowired
SqlSessionFactory sqlSessionFactory;
//使用SQLSession ,MyBatis的BATCH进行批量插入
try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false)) {
DemoMapper domoMapper = sqlSession.getMapper(DemoMapper.class);
//批量的数量
int BATCH = 500;
for (int index = 0; index < insertList.size(); index++) {
domoMapper.insert(insertList.get(index));
i++;
if (index != 0 && index % BATCH == 0) {
sqlSession.commit();
}
}
sqlSession.commit();
}