1、application.yml里配置数据库时,新增&rewriteBatchedStatements=true,能很大的提升批量插入数据库的效率。
2、
@Resource private SqlSessionFactory sqlSessionFactory;
//设置批量手动提交 SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); try { // 生成一定数量卡编码 List<EducationCardRecordDO> list = educationCardRecordService.create(cardBatchRecordDO.getId(),cardBatchRecordDO.getPunchType(),cardBatchRecordDO.getCount(),count); EducationCardRecordMapper educationCardRecordMapper = sqlSession.getMapper(EducationCardRecordMapper.class); list.stream().forEach(cardRecordDO -> educationCardRecordMapper.insert(cardRecordDO)); //提交数据 sqlSession.commit(); sqlSession.clearCache(); sqlSession.close(); // 成功则将状态修改为处理成功 cardBatchRecordDO.setUpdateTime(LocalDateTime.now()); cardBatchRecordDO.setHandlerStatus(HandlerStatus.SUCCESS.code()); } catch (Exception e) { // 将状态修改为处理失败 cardBatchRecordDO.setHandlerStatus(HandlerStatus.FAIL.code()); sqlSession.rollback(); }