/*

* 业务说明: 利用MP方式查询数据库.

* 步骤梳理:

* 1.构建MP的分页对象

* 2.根据分页对象查询数据.

* 3.从分页对象中获取数据

* 4.封装PageResult对象

* 5.编辑配置类 封装分页拦截器

* */

 

@Override

public PageResult getUserList(PageResult pageResult) {

//定义分页对象 IPage是接口 Page<>是实现类对象 getPageNum()页数 //条数

IPage<User> page = new Page<>(pageResult.getPageNum(), pageResult.getPageSize());//接口=实现类

//2.定义条件构造器 指定动态查询Sql

boolean flag = StringUtils.hasLength(pageResult.getQuery());//判断当前对象是否有值,有值是true,无值是false

QueryWrapper<User> queryWrapper = new QueryWrapper<>();

//flag使用的是括号里面的condition属性,如果boolean也就是flag是true才会拼接后面的"username"=pageResult.getQuery()的条件

//pageResult.getQuery()用户查询的条件

queryWrapper.like(flag, "username", pageResult.getQuery());//like模糊查询。是动态SQL,因为搜索栏里信息是动态的

//3.进行分页查询 selectPage分页,封装好了数据,下一行通过page.的方式获得数据

page = userMapper.selectPage(page, queryWrapper);//page分页对象 queryWrapper条件构造器

//4.从封装后的分页对象中获取数据

pageResult.setTotal(page.getTotal()).setRows(page.getRecords());//getTotal总数 getRecords记录

return pageResult;

}