1、配置分页插件:
红线表示创建位置
/**
* 配置MP(MybatisPlus)的分页插件
*/
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
存放位置
@GetMapping("/page")
public R<Page> page(int page, int pageSize, String name){
log.info("page = {},pageSize = {},name = {}",page,pageSize,name);
//构造分页构造器
Page pageInfo = new Page(page, pageSize);
//构造条件构造器
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper();
//添加过滤条件
queryWrapper.like(StringUtils.isNotEmpty(name),Employee::getName,name);
//执行查询
employeeService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
2、具体作用:
源码有这么一句话:
所以具体使用情况应该是:
@GetMapping("/page")
public R<Page> page(int page, int pageSize, String name){
log.info("page = {},pageSize = {},name = {}",page,pageSize,name);
//构造分页构造器
Page pageInfo = new Page(page, pageSize);
//构造条件构造器
//添加过滤条件
LambdaQueryWrapper<Employee> queryWrapper = Wrappers.lambdaQuery(Employee.class).like(StringUtils.isNotEmpty(name), Employee::getName, name);
//执行查询
employeeService.page(pageInfo,queryWrapper);
return R.success(pageInfo);
}
3、new Page()的常用方法:
@Test
public void testPage()
{
// 第1页,每一页显示3条数据
Page<User> page = new Page<>(1,3);
userMapper.selectPage(page, null);
System.out.println(page.getRecords());// 获得当前页数据
System.out.println(page.getCurrent());// 获得页码
System.out.println(page.getSize());// 获得每页显示条数
System.out.println(page.getPages());// 获得总页数
System.out.println(page.getTotal());// 获得总记录数
System.out.println(page.hasNext());// 是否有下一页
System.out.println(page.hasPrevious());// 是否有上一页
}