记录一下关于MybatisPlus分页查询的参数
记录一下mp的分页插件使用:
代码生成器的分页查询一般都是这样:
@RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,@PathVariable Long catelogId){ PageUtils page = attrGroupService.queryPage(params); return R.ok().put("page", page); }
由于今天写代码的时候给分页查询多加了一个参数,因此需要重新改一下根据这个catelogId进行查询:
@RequestMapping("/list/{catelogId}") public R list(@RequestParam Map<String, Object> params,@PathVariable Long catelogId){ PageUtils page = attrGroupService.queryPage(params,catelogId); return R.ok().put("page", page); }
重写queryPage的实现:
@Service("attrGroupService") public class AttrGroupServiceImpl extends ServiceImpl<AttrGroupDao, AttrGroupEntity> implements AttrGroupService { @Override public PageUtils queryPage(Map<String, Object> params, Long catelogId) { if (catelogId == 0) { IPage<AttrGroupEntity> page = this.page(new Query<AttrGroupEntity>().getPage(params), new QueryWrapper<AttrGroupEntity>()); return new PageUtils(page); //PageUtils 可以帮我们从Ipage里边自动解析出,总页码,当前页码,总数量等信息 } else { String key = (String) params.get("key"); //key为检索关键字 //select*from pms_attr_group where catelog_id=? and (attr_group_id=key or attr_group_name=key) QueryWrapper<AttrGroupEntity> wrapper = new QueryWrapper<AttrGroupEntity>().eq("catelog_id", catelogId); if (StringUtils.isNotEmpty(key)) { wrapper.and((obj) -> { obj.eq("attr_group_id", key).or().like("attr_group_name", key); }); } IPage<AttrGroupEntity> page = this.page(new Query<AttrGroupEntity>().getPage(params), wrapper); return new PageUtils(page); } } }
首先判断前端传过来的catelogId是否等于0,然后直接调用Ipage里的page方法进行查询:
IPage<AttrGroupEntity> page = this.page(new Query<AttrGroupEntity>, new QueryWrapper<AttrGroupEntity>())
page方法有两个参数: Params1:是前端传过来的分页信息 Params2:是一个QueryWrapper高级查询
我们进第一个参数(Query)里边看一下封装的信息: 在这可以看到当我们前端传过分页的信息过来放到Map里,在调用getPage方法获取IPage,在这里也可以看到所需要的参数:curPage、limit、sidx(排序字段)、order(排序方式)
将从前端传过来的参数通过调用this.page方法自动将这些参数封装成一个IPage对象,最终返回使用PageUtils
return new PageUtils(page);
来到PageUtils里边可以看到PageUtils可以帮我们从IPage里边自动解析出,总页码,当前页码,总数量等信息::
本人小白记录一下当天所遇见的问题,大佬勿喷,谢谢!
上一篇:
IDEA上Java项目控制台中文乱码