简单条件分页查询 不连接外表
Page 类是om. baomidou. mybatisplus. extension. plugins. pagination包下的
/*** 管理端订单分页查询* @param ordersPageQueryDTO* @return*/@Overridepublic 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*/@Overridepublic 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 categoryNamefrom dish dleft outer join category c on d.category_id = c.id${ew.customSqlSegment}order by d.update_time desc</select>