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>

浙公网安备 33010602011771号