MP实现分页条件查询

  1. ------>详情gitee笔记
  2. 这就是mp的分页插件:     userMapper.selectPage(page, queryWrapper);
  3. public class DishController {
        @Autowired
        private DishService dishService;
    ​
        @GetMapping("/page")
        public Result<PageResult> page(DishPageQueryDTO dto) {
            PageResult page = dishService.page(dto);
            return Result.success(page);
        }
       }
  4. @Service
    public class DishServiceImpl implements DishService {
        @Autowired
        private DishMapper dishMapper;
    ​
        @Override
        public PageResult page(DishPageQueryDTO dto) {
            LambdaQueryWrapper<Dish> lambdaQueryWrapper = new LambdaQueryWrapper<>();
            lambdaQueryWrapper.like(!StringUtils.isBlank(dto.getName()),Dish::getName, dto.getName())
                    .eq(!Objects.isNull(dto.getCategoryId()),Dish::getCategoryId, dto.getCategoryId()); // 添加了类别ID的查询条件
            IPage<Dish> dishIPage = new Page<>(dto.getPage(), dto.getPageSize());
            dishIPage = dishMapper.selectPage(dishIPage, lambdaQueryWrapper); // 使用 lambdaQueryWrapper 而不是 null
    ​
            List<DishVO> dishVOS = BeanUtil.copyToList(dishIPage.getRecords(), DishVO.class);
    ​
            return PageResult.builder().records(dishVOS).total(dishIPage.getTotal()).build();
        }
      }
  5.  

    public interface DishMapper extends BaseMapper<Dish> {
    }
  6. 配置类

    @Configuration
    public class MybatisPlusConfig {
        @Bean
        public PaginationInterceptor mybatisPlusInterceptor() {
            PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
            // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
            // paginationInterceptor.setOverflow(false);
            // 设置最大单页限制数量,默认 500 条,-1 不受限制
            paginationInterceptor.setLimit(1000);
            // 开启 count 的 join 优化,只针对部分 left join
            paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
            return paginationInterceptor;
        }
    }

 

语句2

    public PageDTO<CouponPageVO> pageCoupon(CouponQuery query) {
        LambdaQueryWrapper<Coupon> wrapper = new LambdaQueryWrapper<>();
        Page<Coupon> couponPage = new Page<>();
        couponPage.setSize(query.getPageSize());
        couponPage.setPages(query.getPageNo());
        wrapper.like(StrUtil.isNotBlank(query.getName()),Coupon::getName, query.getName())
                .eq(query.getType()!=null,Coupon::getType,query.getType())
                .eq(query.getStatus()!=null,Coupon::getStatus,query.getStatus());

        this.page(couponPage,wrapper);
        List<Coupon> records = couponPage.getRecords();

        List<CouponPageVO> voList = BeanUtil.copyToList(records, CouponPageVO.class);
        return PageDTO.of(couponPage, voList);
    }
}

 

语句3:

注释的是mybatis,非注释的是MP

    public PageResult historyOrders(OrdersPageQueryDTO source) {
//        PageHelper.startPage(source.getPage(),source.getPageSize());
//        source.setUserId(BaseContext.getCurrentId());
//        Page<OrderVO> orderVOPage = orderRepository.pageHistoryOrders(source);
        Page<OrderVO> page = new Page<>(source.getPage(), source.getPageSize());
        orderRepository.pageHistoryOrders(page, source);
        return new PageResult(page.getTotal(), page.getRecords());
    }
posted @ 2024-07-02 20:54  冷风5997  阅读(128)  评论(0)    收藏  举报