java+mybatis循环生成insert语句,一次性统一提交,大批量数据效率高
同种方式适用update批量操作,与单条操作相比效率提高了三分之二。
此方式需要注意的是:不要一次性提交太多条数据,拼接后的sql过长,可能会导致语句无法执行。
insert、update语句就是常规单条操作写法。
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); ResearchLogisticsMapper rMapper = sqlSession.getMapper(ResearchLogisticsMapper.class); String biaoshi = logid; //数据处理 ListdataList = data(str, caseNo, path, request, biaoshi); //每2000条提交一次 List > dataLists = ListUtils.partition(dataList, 2000); try { int i = 0; for (int h = 0; h < dataLists.size(); h++) { List
l = dataLists.get(h); for (ResearchLogistics r : l) { i = i + rMapper.batchInsertLogistics(r); } sqlSession.commit(); } } catch (Exception e) { e.printStackTrace(); vo.setCode("500"); vo.setMessage("数据插入异常!"); return vo; }