原!!将集合分段处理

/**
     * 短信集合按照 perCount分段
     * @param list
     * @return
     */

  private static final int perCount = 3000;//单次入库数量

private List<List<OpenMsgDo>> divideIntoLists(List<OpenMsgDo> list) { if (list == null || list.size() == 0) { return null; } List<List<OpenMsgDo>> lists = new ArrayList<>(); int listSize = list.size(); int sections = listSize / perCount; int remain = listSize % perCount; int start = 0; for (int i = 1; i < sections + 1; i++) { List<OpenMsgDo> tempList = new ArrayList<>(); tempList = list.subList(start, i * perCount); lists.add(tempList); start = i * perCount; } if (remain != 0) { List<OpenMsgDo> tempList = new ArrayList<>(); tempList = list.subList(start, start + remain); lists.add(tempList); } return lists; }

 

//批量入库
            for (Map.Entry<String, List<OpenMsgDo>> entry : msgMap.entrySet()) {
                
                String tableName = entry.getKey();
                List<OpenMsgDo> msgList = entry.getValue();
                //TODO 分批量插入
                List<List<OpenMsgDo>> lists = divideIntoLists(msgList);
                if (lists == null) {
                    continue;
                }
                for (int i = 0; i < lists.size(); i++) {
                    int insertRecords = msgService.batchInsertMsg(tableName, lists.get(i));
                    logger.info("【入库的表名=" + tableName + " ,短信集合大小=" + lists.get(i).size()
                            + " ,实际入库的短信条数=" + insertRecords + "】");
                }
                //                int insertRecords = msgService.batchInsertMsg(entry.getKey(), entry.getValue());
            }
            //解析入库成功标志  
            isPraseAndRecordSuccess = true;

 

转载于:https://www.cnblogs.com/wuyun-blog/p/8532092.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值