同種方式適用update批量操作,與單條操作相比效率提高了三分之二。
此方式需要注意的是:不要一次性提交太多條數據,拼接后的sql過長,可能會導致語句無法執行。
insert、update語句就是常規單條操作寫法。
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); ResearchLogisticsMapper rMapper = sqlSession.getMapper(ResearchLogisticsMapper.class); String biaoshi = logid; //數據處理 List<ResearchLogistics> dataList = data(str, caseNo, path, request, biaoshi); //每2000條提交一次 List<List<ResearchLogistics>> dataLists = ListUtils.partition(dataList, 2000); try { int i = 0; for (int h = 0; h < dataLists.size(); h++) { List<ResearchLogistics> 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; }