java+mybatis循環生成insert語句,一次性統一提交,大批量數據效率高


同種方式適用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;
            }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM