分页读取数据,切分集合传递

分页读取数据:

        if (isPushSup) {
            Date date = new Date();
            SimpleDateFormat dateStyle = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //获取执行次数
            List<WebsiteProductQuotationCnHengRui> productInfo = hengRuiProductMapper.selectCountAll();//拿到所有变化数据数据(新增,修改,删除)
            int size = productInfo.size();
            //分页截取
            int startNum = 0; //开始条数
            int totalNum = 2000; //一次截取总条数
            int cycleIndex = size / totalNum + (size % totalNum != 0 ? 1 : 0);//循环执行次数
            for (int i = 0; i < cycleIndex; i++) {
                //循环异常报错 继续执行
                try {
                    if (i == 0) {
                        startNum = 0;
                    } else {
                        startNum = startNum + totalNum;
                    }
                    differentialDataProcessing(productInfo, startNum, totalNum);//分页读取
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
            hengRuiProductMapper.productPackPriceHengRuiDelete();//清空表
            hengRuiProductMapper.productPackPriceHengRuiInsert();//备份现有记录
            //添加产品变动记录基本表
            hengRuiProductMapper.insertHengRuiUpdateStatusRecords(dateStyle.format(date), dateStyle.format(date), 1);
        }
     //分页后的数据
        List<WebsiteProductQuotationCnHengRui> websiteProductQuotationCnHengRuis = hengRuiProductMapper.selectCountAllPage(startNum, totalNum);

XML:

 <!--分页读取-->
    <select id="selectCountAllPage" resultType="com.chem.www.domain.WebsiteProductQuotationCnHengRui">
        select * from  AAA where AAA.product_id IS NULL  limit #{startNum}, #{totalNum}
    </select>

分片切分集合:

  		//将集合转换为XML字符串 集合生成XMl 并调用方法进行 传送
        //分割集合 500个一分割
        List<List<ProductHengRuiInfo>> lists = splitList(allList, 50);
        int size = lists.size();
        for (int i = 0; i < size; i++) {
            //获取分割后的第一层
            List<ProductHengRuiInfo> item = lists.get(i);
            String xmlString = createXmlStringList(item);//调用方法生成XML data
            sendRollbackInfo(xmlString);
        }
  /**
     * 分割集合
     */
    private List<List<ProductHengRuiInfo>> splitList(List<ProductHengRuiInfo> list, int groupSize) {
        return Lists.partition(list, groupSize); // 使用guava
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值