zoukankan      html  css  js  c++  java
  • FunctionalInterface~一个批量处理数据的类

    主要使用了一个委托的方式 ,函数式接口,将需要处理的业务逻辑以参数的方式传到方法里,而批量处理的方法代码比较固定,所以进行了抽象。

    /**
     * 数据处理辅助类.
     */
    public class DataHelper {
       static Logger logger = LoggerFactory.getLogger(DataHelper.class);
    
      /**
       * 分页处理逻辑.
       *
       * @param total
       * @param mapper
       * @param query
       * @param consumer
       * @param <T>
       */
      public static <T> void fillDataByPage(int total,
                                            int pageSize,
                                            BaseMapper<T> mapper,
                                            QueryWrapper<T> query,
                                            Consumer<T> consumer) {
          Integer totalPage = total / pageSize;
    
          if (totalPage > pageSize && totalPage % pageSize != 0) {
              totalPage++;
          }
          for (int i = 1; i <= totalPage; i++) {
              IPage<T> pages = mapper.selectPage(
                      new Page<>(i, pageSize), query);
              List<T> list = pages.getRecords();
              for (T item : list) {
                  consumer.accept(item);
              }
              logger.info("【当前数据页:{}/{}】", i, pageSize);
          }
      }
    }
    

    业务层在使用批量大数据处理时,可以直接调用这个fillDataByPage方法,它们只关注自己的业务逻辑即可。

     QueryWrapper<UserAccountSet> actRuExecutionQueryWrapper = new QueryWrapper<>();
            actRuExecutionQueryWrapper.eq("AccountState", 0);
            Integer total = userAccountSetDao.selectCount(actRuExecutionQueryWrapper);
    
            DataHelper.fillDataByPage(total, DATA_PAGE_SIZE, userAccountSetDao, actRuExecutionQueryWrapper, (userAccountSet) -> {
               // 业务逻辑代码            
            });
    

  • 相关阅读:
    php foreach的使用注意
    php数组遍历 使用foreach
    PHP strip_tags() 函数
    php nl2br() 函数
    php文件上传
    一个网站雏形
    jsp接收相同复合参数 request.getParameterValues()用法
    使用div+css制作简单导航 以及要注意问题
    Java 类与对象
    java 基础
  • 原文地址:https://www.cnblogs.com/lori/p/14717046.html
Copyright © 2011-2022 走看看