当前位置:   article > 正文

java中批量插入数据优化问题_java大批量入库操作优化

java大批量入库操作优化
一.问题描述

开发中遇到excel大量数据批量入库时候,逐条插入数据很慢导致卡顿问题。

二.解决方案

  1. <!--xml-->
  2. <insert id="insertBatchTemplateData" useGeneratedKeys="false" parameterType="java.util.HashMap">
  3. insert into ZJDSS.BUDGET_ORGAN_ISSUED_IMP
  4. (BUDGET_ID,
  5. ORGAN_ID,
  6. COST_ALL,
  7. IMPORT_ID,
  8. STATE,
  9. ACCT_YEAR) VALUES
  10. <foreach collection="DATA_LIST" item="DATA" separator=",">
  11. (
  12. #{DATA.BUDGET_ID},
  13. #{DATA.ORGAN_ID},
  14. #{DATA.COST_ALL},
  15. #{DATA.IMPORT_ID},
  16. '1',
  17. #{DATA.acctYear})
  18. </foreach>
  19. </insert>

 
  1. impl:
  2. /***
  3. * STEP 2.20 文件入库operating insert,进入导入日志,记录导入内容
  4. */
  5. private boolean executeInsertDataLog(final List ls,Map<String,Object> params) {
  6. try {
  7. Map param = new HashMap();
  8. param.put("areaNo", params.get("areaNo"));
  9. param.put("acctYear", params.get("acctYear"));
  10. mapper.delBudgetWg(param);
  11. System.out.println("shujuliang--------------------------------------------"+ls.size());
  12. int listSize = ls.size();
  13. int toIndex=100;
  14. int count = 0;
  15. for(int i = 0;i<ls.size();i+=100) {
  16. System.out.println("i================================================="+i);
  17. if (i + 100 > listSize) { //作用为toIndex最后没有100条数据则剩余几条newList中就装几条
  18. toIndex = listSize - i;
  19. System.out.println("不够一百条了");
  20. }
  21. List DATA_LIST = ls.subList(i, i + toIndex);//每100个为一组
  22. for(int j = 0; j < DATA_LIST.size(); j++){
  23. Map m = (Map) DATA_LIST.get(j);
  24. m.put("IMPORT_ID", params.get("batchId"));
  25. m.put("OPER_USER", params.get("loginId"));
  26. m.put("acctYear", params.get("acctYear"));
  27. }
  28. param.put("DATA_LIST",DATA_LIST);
  29. mapper.insertBatchTemplateData(param);
  30. mapper.insertBatchTemplateDataLog(param);
  31. }
  32. } catch (Exception e) {
  33. Map param = new HashMap();
  34. param.put("areaNo", params.get("areaNo"));
  35. param.put("acctYear", params.get("acctYear"));
  36. mapper.delBudgetWg(param);
  37. return false;
  38. }
  39. return true;
  40. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号