查询数据量过大,分批处理 java

 @Test
    @Test
    public void ifelse1(){

        List<String> a=new ArrayList<>();
               a.add("1a");
               a.add("2b");
               a.add("3c");
               a.add("4d");
               a.add("5e");

            int limit = 2;
            Integer size = a.size();
            if (limit < size) {
                //分批数
                int part = size / limit;
                BILLHEADER_LOGGER.info("本次共有 :{}条!" + " 分为 :{}批处理", size, part);
                for (int i = 0; i < part; i++) {
                    List<String> listPage = a.subList(0, limit);
                    BILLHEADER_LOGGER.info("处理数据: {}条", listPage.size());

                    // 分批处理
                    for (int q = 0; q < listPage.size(); q++) {
                        BILLHEADER_LOGGER.info("处理数据listPage: {}",listPage.get(q));
                    }

                    // 剔除已处理的
                    a.subList(0, limit).clear();
                }
                // 如果有剩余, 处理剩余条数
                if (!a.isEmpty()) {
                    BILLHEADER_LOGGER.info("剩余数据条数: {} 条", a.size());
                    for (int q = 0; q < a.size(); q++) {
                        BILLHEADER_LOGGER.info("剩余数据: {}",a.get(q));
                    }
                }
            }
            
    }

结果如下:

2020-12-09 16:22:56.259 [main] INFO [c.z.p.e.meTest:103 (ifelse1)] - 本次共有 :5条! 分为 :2批处理
2020-12-09 16:22:56.387 [main] INFO [c.z.p.e.meTest:106 (ifelse1)] - 处理数据: 2条
2020-12-09 16:22:56.387 [main] INFO [c.z.p.e.meTest:110 (ifelse1)] - 处理数据listPage: 1a
2020-12-09 16:22:56.387 [main] INFO [c.z.p.e.meTest:110 (ifelse1)] - 处理数据listPage: 2b
2020-12-09 16:22:56.388 [main] INFO [c.z.p.e.meTest:106 (ifelse1)] - 处理数据: 2条
2020-12-09 16:22:56.388 [main] INFO [c.z.p.e.meTest:110 (ifelse1)] - 处理数据listPage: 3c
2020-12-09 16:22:56.389 [main] INFO [c.z.p.e.meTest:110 (ifelse1)] - 处理数据listPage: 4d
2020-12-09 16:22:56.389 [main] INFO [c.z.p.e.meTest:118 (ifelse1)] - 剩余数据条数: 1 条
2020-12-09 16:22:56.389 [main] INFO [c.z.p.e.meTest:120 (ifelse1)] - 处理数据: 5e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值