zoukankan      html  css  js  c++  java
  • 代码改造实录--分页查询先限定条件再查询,而非查询后再加条件判断

    原来的代码:

            Outpatient outpatientQuery = new Outpatient();
            outpatientQuery.setUserId(user.getId());
            Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
            Pageable pageable = PageRequest.of(page, 8, sort);
            Page<Outpatient> pages = outpatientService.queryOutpatients(outpatientQuery, pageable);
    
            List<InformationVo> informationVoVoList = new ArrayList<>();
            for (Outpatient out : pages.getContent()) {
                Long createTime = out.getCreateTime();
    
                Long dayTime = Long.valueOf(System.currentTimeMillis());
    
                Calendar calendar = Calendar.getInstance();
                calendar.setTimeInMillis(createTime);
                calendar.add(Calendar.DATE, 20);
                Calendar calendar1 = Calendar.getInstance();
                calendar1.setTimeInMillis(createTime);
                calendar1.add(Calendar.DATE, 23);
                long beginTime = calendar.getTimeInMillis();
                long endTime = calendar1.getTimeInMillis();
    
                if (dayTime.compareTo(beginTime) >= 0 && dayTime.compareTo(endTime) <= 0) {
               ......
                }
            }

    修改后代码:

            Calendar calendarStart = Calendar.getInstance();
            calendarStart.add(Calendar.DATE, -23);
            Calendar calendarEnd = Calendar.getInstance();
            calendarEnd.add(Calendar.DATE, -20);
    
            OutpatientQuery outpatientQuery = new OutpatientQuery();
            outpatientQuery.setUserId(userId);
            outpatientQuery.setCreateTimeStart(calendarStart.getTimeInMillis());
            outpatientQuery.setCreateTimeEnd(calendarEnd.getTimeInMillis());
            Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
            Pageable pageable = PageRequest.of(page, 8, sort);
            Page<Outpatient> pages = outpatientService.queryOutpatients(outpatientQuery, pageable);
    
            List<InformationVo> informationVoVoList = new ArrayList<>();
            for (Outpatient out : pages.getContent()) {
               ......
            }

    修改后:

      1、代码减少,逻辑更清楚;

      2、减少无效的数据访问;

      3、修正了分页信息。

  • 相关阅读:
    Javap课堂练习——接口与继承
    课堂练习——数组
    Java课堂练习——string
    软件工程作业01
    登录界面连接数据库
    软件工程概论第一周学习进度
    06构建之法读书笔记——需求分析
    05构建之法读书笔记——用户体验
    04构建之法读书笔记——IT行业的创新
    03读构建之法读书笔记——团队和流程
  • 原文地址:https://www.cnblogs.com/GreenMountain/p/13386256.html
Copyright © 2011-2022 走看看