分页查询的实现有两种方式
1、在sql中使用 limit子句 实现分页查询
limit关键字的用法是:LIMIT [offset,] rows
select * from tablex limit 5,5;
Ps1:offset是相对于首行的偏移量(首行是0),rows是返回条数
Ps2:mapper中可以传变量,即在实际使用的时候 “offset与rows”可以用变量替代
2、使用第三方库进行分页查询,如mybatis的插件pagehelper
使用PageHelper好处:在实际项目开发中更方便
原因是:在项目中我们执行一个分页查询时,很多时候还会需要知道该查询的其他信息,如总数、每页数量、当前页数、上一页或下一页等等,这些信息如果每次都自己写的话就太麻烦了,而pagehelper能够帮助我们更方便地获取这些信息,大大方便了我们的开发效率。
pagehelper使用步骤
一:导入插件
1:pom.xml中导入依赖
-- mybatis 中使用
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>x.x.xx</version>
</dependency>
-- spring boot 中使用
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>x.x.xx</version>
</dependency>
注意导入的依赖是spring版本的而不是其独立版本,否则pagehelper将不起作用
二、声明插件
// mybatis 中
在mybatis配置文件(mybatis-config.xml)中声明插件
... properties,typeAliases
<!-- 配置分页插件PageHelper -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
... environments
// spring boot 中
在springboot配置文件(applicable.yml)中声明插件
#pagehelper分页插件配置
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
三、使用
int pageNum = 1;//当前页码
int pageSize = 5;//页面显示记录条数
PageHelper.startPage(pageNum,pageSize);// 开启分页
List<Emp> emps = mapper.selectAll();// 原查询语句的结果
PageInfo<Emp> pageInfo = new PageInfo<Emp>(emps);
// 获取当前页码
int pageNum1 = pageInfo.getPageNum();
System.out.println("pageNum = " + pageNum1);
// 获取当前页面是第几页
int pageSize1 = pageInfo.getPageSize();
System.out.println("pageSize = " + pageSize1);
// 获取总记录数
long total = pageInfo.getTotal();
System.out.println("total = " + total);
// 获取当前页面记录数
int size = pageInfo.getSize();
System.out.println("size = " + size);
// 获取开始记录数
int startRow = pageInfo.getStartRow();
System.out.println("startRow = " + startRow);
// 获取结束记录数
int endRow = pageInfo.getEndRow();
System.out.println("endRow = " + endRow);
注意:只有紧跟着PageHelper.startPage()的sql语句才被pagehelper起作用
基本使用就这样啦