MP实现分页条件查询
- ------>详情gitee笔记
- 这就是mp的分页插件: userMapper.selectPage(page, queryWrapper);
-
public class DishController { @Autowired private DishService dishService; @GetMapping("/page") public Result<PageResult> page(DishPageQueryDTO dto) { PageResult page = dishService.page(dto); return Result.success(page); } } -
@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(); } } -
public interface DishMapper extends BaseMapper<Dish> { } -
配置类
@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());
}

浙公网安备 33010602011771号