前言
在springboot中,如果我们依赖了mybatis-plus的启动器 ,就可以不用在引入pagehelper的依赖了
一、使用步骤
1 . 添加依赖
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.0</version>
</dependency>
2 . 分页拦截器
springboot 通过配置类去替代
/**
* 分页插件配置类
*/
@Configuration
public class PageHelperConfiguration {
/**
* 创建分页插件拦截器对象
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
}
3 . 简短代码实现
- 参数 page : 当前页数 rows : 当前页的数据大小
IPage 这里用于封装分页前的参数
IPage iPage = new Page<>(page,rows); - IPage: 这里的IPage封装分页后的结果
iPage = brandMapper.selectPage(iPage,queryWrapper);
public PageResult<Brand> brandPageQuery(Integer page, Integer rows, String key, String sortBy, Boolean desc) {
//1.封装条件
//1.1 IPage: 这里用于封装分页前的参数
IPage<Brand> iPage = new Page<>(page,rows);
//1.2 QueryWrapper: 用于封装查询条件(也可以排序)
QueryWrapper<Brand> queryWrapper = Wrappers.query(); //待会自己往QueryWrapper存入条件
//处理key
if(StringUtils.isNotEmpty(key)){
//sql: where name like '%H%' or letter = 'H'
/**
* 参数一:字段名称
* 注意:like方法的value已经包含%xxx%
*/
queryWrapper
.like("name",key)
.or()
.eq("letter",key.toUpperCase());
}
//处理排序
if (StringUtils.isNotEmpty(sortBy)) {
if(desc){
//降序
queryWrapper.orderByDesc(sortBy);
}else{
//升序
queryWrapper.orderByAsc(sortBy);
}
}
//2.执行查询,获取结果
//IPage: 这里的IPage封装分页后的结果
iPage = brandMapper.selectPage(iPage,queryWrapper);
//3.处理并返回结果
//3.1 封装PageResult
PageResult<Brand> pageResult = new PageResult<>(iPage.getTotal(),iPage.getPages(),iPage.getRecords());
//3.2 返回
return pageResult;
}