编辑UserController
编辑UserService
/**
* 利用MP的方式实现分页查询
* API说明: selectPage(arg1,arg2)
* arg1: MP中的分页对象 固定的
* arg2: MP分页中的条件构造器
* @param pageResult
* @return
* 动态Sql: select * from user where username like "%admin%"
* 条件: 如果用户传递query则拼接where条件 否则不拼接where条件
*/
@Override
public PageResult getUserList(PageResult pageResult) {//原始3个参数
//1.定义MP的分页对象 arg1:页面 arg2:行数
IPage iPage = new Page(pageResult.getPageNum(), pageResult.getPageSize());
//2.构建查询条件构造器
QueryWrapper queryWrapper = new QueryWrapper();
//判断用户数据是否有效 有效 true 无效 false
boolean flag = StringUtils.hasLength(pageResult.getQuery());
queryWrapper.like(flag, "username", pageResult.getQuery());
//经过MP分页查询将所有的分页(total/结果/页面/条数/xxx)数据封装到iPage对象
iPage = userMapper.selectPage(iPage,queryWrapper);
//从分页对象中获取总记录数
long total = iPage.getTotal();
//从分页对象中获取分页后的结果
List<User> rows = iPage.getRecords();
return pageResult.setTotal(total).setRows(rows); //需要返回的是5个参数
}
MP分页API
编辑MP配置类
//命名规则: 类似于配置文件 则把这个类称之为"配置类"一般Config结尾
@Configuration //标识我是一个配置类(代替之前的xml文件)
public class MybatisPlusConfig {
//铺垫: xml中通过标签管理对象,将对象交给Spring容器管理. <bean>
//配置类: 将方法的返回值交给Spring容器管理 @Bean注解.
/**
* 关于MP分页规则说明
* 规则: 需要设定一个拦截器.将分页的Sql进行动态的拼接.
* Sql: 规则现在的Sql都支持Sql92标准!!!! 设计理念不同
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MARIADB));
return interceptor;
}
}