MyBatisPlus分页详解
1.使用步骤
(1)添加配置类
注意:一般在项目中创建一个config包,把配置类放到下面
@Configuration//标注该类是一个Spring配置类
public class MyBatisPlusConfig {
@Bean//使用在方法上,标注将该方法的返回值存储到Spring容器中
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
2.测试分页
@GetMapping("/page")
public R<Page> page(int page, int pageSize, String name) {//前端传过来分页所需要的参数
//Page类是mp提供的
// 构造分页构造器
Page pageInfo = new Page(page,pageSize);
// 构造条件构造器
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
// 添加过滤条件
queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name);
// 添加排序条件
queryWrapper.orderByDesc(Employee::getUpdateTime);
// 执行查询
employeeService.page(pageInfo,queryWrapper);
//pageInfo中包含Page类的各个参数
return R.success(pageInfo);
2.page类详解
(1)page类的参数源码如下
private static final long serialVersionUID = 8545996863226528798L;
protected List<T> records;
protected long total;
protected long size;
protected long current;
protected List<OrderItem> orders;
protected boolean optimizeCountSql;
protected boolean isSearchCount;
protected boolean hitCount;
protected String countId;
protected Long maxLimit;
(2)各个参数的含义
(1)records:用来存放查询出来的数据
(2)total: 用来返回记录的总数
(3)size: 每页显示条数,默认 10
(4)current:表示当前页,默认1
(5)orders: 排序字段信息
(6)optimizeCountSql: 自动优化 COUNT SQL,默认true
(7)isSearchCount: 是否进行 count 查询,默认true
(8)hitCount: 是否命中count缓存,默认false