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) -> {
               // 业务逻辑代码            
            });
    

  • 相关阅读:
    自己设计的SSO登录流程图
    Java泛型:泛型类、泛型接口和泛型方法
    Java中泛型的各种使用
    Java总结篇系列:Java泛型
    java生成MD5校验码
    Android SQLite数据库之事务的学习
    Android SQLite详解
    android删除表和清空表
    Android 软键盘自动弹出和关闭
    java中表示二进制、八进制、十进制、十六进制
  • 原文地址:https://www.cnblogs.com/lori/p/14717046.html
Copyright © 2011-2022 走看看