记录一下关于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项目控制台中文乱码
