目录
1. 分页插件的使用步骤
①添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
②配置分页插件
在MyBatis的核心配置文件中配置插件
<plugins>
<!--设置分页插件-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
2. 分页插件的使用
/**
*
* @param pageNo 分页页码
* @param pageSize 分页大小
* @param student 查询条件
* @return
*/
@Override
public PageInfo<Student> page(int pageNo, int pageSize, Student student) {
// 开启分页
PageHelper.startPage(pageNo, pageSize);
// 查询
List<Student> list = studentMapper.page(student);
// 封装分页信息,把查询结果List集合封装到PageInfo
PageInfo<Student> pageInfo = new PageInfo<>(list);
return pageInfo;
}
1. 开启分页:
PageHelper.startPage(pageNo, pageSize);
这行代码的作用是设置分页参数,其中pageNo表示当前页码,pageSize表示每页显示的记录数。调用这个方法后,接下来的MyBatis查询语句会自动添加上分页的SQL限制语句。
2.执行查询:
List<Student> list = studentMapper.page(student);
这里假设studentMapper是一个MyBatis的Mapper接口,而page(student)是自定义的一个查询方法,它根据传入的Student对象(可能包含查询条件)来获取数据。由于之前已经调用了PageHelper.startPage,所以这次查询会自动带上分页限制。在mapper文件的sql语句中就不用去主动加上 limit pageNo, pageSize;
3.封装分页信息:
PageInfo<Student> pageInfo = new PageInfo<>(list);
PageInfo类是PageHelper提供的一个工具类,用来封装分页后的数据和分页信息。通过将查询结果列表list传递给PageInfo构造器,可以得到包含了总记录数、总页数、当前页数据等信息的对象。
介绍:
a>在查询功能之前使用PageHelper.startPage(int pageNum, int pageSize) 开启分页功能
pageNum:当前页的页码
pageSize:每页显示的条数
b>在查询获取list集合之后,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, int
navigatePages)获取分页相关数据
list:分页之后的数据
navigatePages:导航分页的页码数
c>分页相关数据
PageInfo{
pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8,
list=Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30, pages=8, reasonable=false, pageSizeZero=false},
prePage=7, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true, hasNextPage=false, navigatePages=5, navigateFirstPage4, navigateLastPage8, navigatepageNums=[4, 5, 6, 7, 8]
}
pageNum:当前页的页码
pageSize:每页显示的条数
size:当前页显示的真实条数
total: 总 记 录 数
pages: 总 页 数
prePage:上一页的页码
nextPage:下一页的页码
isFirstPage/isLastPage:是否为第一页/最后一页
hasPreviousPage/hasNextPage:是否存在上一页/下一页
navigatePages:导航分页的页码数
navigatepageNums:导航分页的页码,[1,2,3,4,5]