1.完成分页操作的第一步:先进行拦截器插件的配置
3.4版本后
/*
配置拦截器 3.4版本后
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//设置数据类型,还可以添加别的拦截器
return interceptor;
}
3.4之前的版本
@Bean
public PaginationInterceptor paginationInterceptor() {
//3.4版本之前
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
2.进行测试代码的编写
QueryWrapper wrapper = new QueryWrapper();
wrapper.like("email","455@77");
List list = userMapper.selectList(wrapper);
Page<User> page = new Page<>(1,2);//第一个代表页码,第二个代表查询几条数据
Page page1 = userMapper.selectPage(page, wrapper);
List records = page1.getRecords();//当前页内容
for (Object record : records) {
System.out.println(record);
}
System.out.println(page1.getCurrent());//当前页
System.out.println(page1.getPages());//总页数
System.out.println(page1.getSize());//当前页记录数
System.out.println(page1.getTotal());//总记录数
System.out.println(page1.hasNext());//有无下一页
System.out.println(page1.hasPrevious());//有无上一页
结果显示