1、配置分页插件
把分页的插件也配置到统一的配置类里:
@Configuration
// 配置扫描mapper的路径
@MapperScan("com.pingguo.mpdemo.mapper")
public class MpConfig {
// 乐观锁插件
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
// 分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
2、使用分页
还是在测试类中增加测试方法,这里列了常用到的方法,后面配合前端页面做分页功能时候,都要用上。
// 测试分页
@Test
void testPaging() {
// 创建分页对象,current为当前页数,size为每页最大记录数
Page<User> pageUser = new Page<>(1, 5);
// 调用分页查询方法,传入分页对象-pageUser,wrapper是构造条件对象,这里暂时写null
userMapper.selectPage(pageUser, null);
System.out.println("当前页:"+ pageUser.getCurrent());
System.out.println("当前页数据list集合:" + pageUser.getRecords());
System.out.println("每页显示记录数:" + pageUser.getSize());
System.out.println("总记录数:" + pageUser.getTotal());
System.out.println("总页数:" + pageUser.getPages());
System.out.println("是否有下一页:" + pageUser.hasNext());
System.out.println("是否有上一页:" + pageUser.hasPrevious());
}
目前数据表共12条数据,运行一下,对比下结果:
当前页:1
当前页数据list集合:[User(id=2, name=修改名称222, age=19,
email=pingguotest1@pingguo.com, createTime=Thu Dec 24 23:27:20 CST 2020,
updateTime=Thu Dec 24 23:27:23 CST 2020, version=null), User(id=3,
name=wesson3, age=20, email=pingguotest1@pingguo.com, createTime=Wed Dec
23 23:27:32 CST 2020, updateTime=Thu Dec 24 23:27:36 CST 2020,
version=null), User(id=4, name=daxiong, age=22,
email=pingguotest1@pingguo.com, createTime=null, updateTime=Fri Dec 25
00:55:02 CST 2020, version=null), User(id=5, name=wesson5, age=20,
email=pingguotest1@pingguo.com, createTime=null, updateTime=null,
version=null), User(id=1342322873243996161, name=李白6, age=66,
email=laowang@123.com, createTime=Fri Dec 25 12:14:47 CST 2020,
updateTime=Fri Dec 25 15:43:11 CST 2020, version=2)]
每页显示记录数:5
总记录数:12
总页数:3
是否有下一页:true
是否有上一页:false