mybatis-plus实现分页查询 -2025/3/11

简单条件分页查询 不连接外表
Page 类是om. baomidou. mybatisplus. extension. plugins. pagination包下的

/**
     * 管理端订单分页查询
     * @param ordersPageQueryDTO
     * @return
     */
    @Override
    public PageResult pageQuery(OrdersPageQueryDTO ordersPageQueryDTO) {
        Page<Orders> page = new Page<>(ordersPageQueryDTO.getPage(), ordersPageQueryDTO.getPageSize());
        QueryWrapper<Orders> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(ordersPageQueryDTO.getNumber() != null, "number", ordersPageQueryDTO.getNumber())
                .eq(ordersPageQueryDTO.getStatus() != null, "status", ordersPageQueryDTO.getStatus())
                .like(ordersPageQueryDTO.getPhone() != null, "phone", ordersPageQueryDTO.getPhone())
                .between(ordersPageQueryDTO.getBeginTime() != null && ordersPageQueryDTO.getEndTime() != null,
                        "order_time", ordersPageQueryDTO.getBeginTime(), ordersPageQueryDTO.getEndTime());
        page = ordersMapper.selectPage(page, queryWrapper);
        return new PageResult(page.getTotal(), page.getRecords());
    }

连接外表的复杂条件分页查询

 /**
     * 菜品分页查询
     * @param dishPageQueryDTO
     * @return
     */
    @Override
    public PageResult pageQuery(DishPageQueryDTO dishPageQueryDTO) {
        // 创建分页对象
        Page<DishVO> page = new Page<>(dishPageQueryDTO.getPage(), dishPageQueryDTO.getPageSize());
        page.setOptimizeCountSql(false);
        // 创建查询条件
        QueryWrapper<DishVO> queryWrapper = new QueryWrapper<>();
        queryWrapper.like(dishPageQueryDTO.getName() != null, "d.name", dishPageQueryDTO.getName())
                .eq(dishPageQueryDTO.getStatus() != null, "d.status", dishPageQueryDTO.getStatus())
                .eq(dishPageQueryDTO.getCategoryId() != null, "d.category_id", dishPageQueryDTO.getCategoryId());

        // 执行分页查询
        IPage<DishVO> pageResult = dishMapper.selectDishPage(page, queryWrapper);

        // 返回结果
        return new PageResult(pageResult.getTotal(), pageResult.getRecords());
    }

其中 连接外表的sql语句自己写
mapper接口设计

/**
     * 分页查询菜品
     * @param page
     * @param wrapper
     * @return IPage<DishVO>
     */
    IPage<DishVO> selectDishPage(IPage<DishVO> page, @Param(Constants.WRAPPER) QueryWrapper<DishVO> wrapper);

xml中实现

<select id="selectDishPage" resultType="com.xy.vo.DishVO">
        select d.*, c.`name` as categoryName
        from dish d
        left outer join category c on d.category_id = c.id
            ${ew.customSqlSegment}
        order by d.update_time desc
    </select>
posted @ 2025-03-11 23:34  XYu1230  阅读(78)  评论(0)    收藏  举报