1.添加jar包
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <!--自动下载最新版本 --> <version>REALSE</version> </dependency>2.配置拦截器插件
<!-- plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下: properties?, settings?, typeAliases?, typeHandlers?, objectFactory?,objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers? --> <plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageInterceptor"> <!-- 使用下面的方式配置参数,后面会有所有的参数介绍 --> <property value="value1"/> </plugin> </plugins>3.代码使用
只有在查询之前调用过startPage或者是offsetPage方法,后面的查询出来的List结果就会进行分页查询
下面的两个都是查询第一页,每一页有10条数据
//第二种,Mapper接口方式的调用,推荐这种使用方式。 PageHelper.startPage(1, 10); List<Employee> employees = employeeMapper.selectAll(); //第三种,Mapper接口方式的调用,推荐这种使用方式。 PageHelper.offsetPage(1, 10); List<Employee> employees = employeeMapper.selectAll();这里提一下,这个插件还带有一个PageInfo类,里面有可以记录各种信息
刚开始,我以为是和我之前自己封装的Page一样,详情请看Jsp学习笔记(4)——分页查询
但是,其实不一样的,这个PageInfo就是一个封装而已,只是用来存放数据而已,里面有各种信息
属性 说明pageNum 当前页号(第几页)
pageSize 每页的显示的数据个数
size 当前页的显示的数据个数
startRow 当前页面第一个元素在数据库中的行号
endRow 当前页面最后一个元素在数据库中的行号
pages 总页数
prePage 上一页的页号
nextPage 下一页页号
isFirstPage 是否为第一页
isLastPage 是否为最后一页
hasPreviousPage 是否有前一页
hasNextPage 是否有下一页
navigatePages 导航页码数
navigatepageNums 所有导航页号
navigatePages 导航条上的第一页
navigateFirstPage 导航条上的第一页
navigateLastPage 导航条上的最后一页
PageHelper.startPage(1, 10); List<Employee> employees = mapper.selectAll(); PageInfo<Employee> pageInfo = new PageInfo<>(employees);