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、修正了分页信息。

  • 相关阅读:
    php安装xcache (5.4)
    nginx博客系统(内含nginx图片缩略图处理代码,不错)
    一个mysql开启多个端口
    mysql源码重启
    ecshop支付时减库存方法
    n阶幻方问题
    codeforces 710A King Moves(水)
    关于ios::sync_with_stdio(false);和 cin.tie(0)加速c++输入输出流
    codeforces 701C. They Are Everywhere(尺取法)
    codeforces 701 B. Cells Not Under Attack
  • 原文地址:https://www.cnblogs.com/GreenMountain/p/13386256.html
Copyright © 2011-2022 走看看