文章目录
失败,是正因你在距成功一步之遥的时候停住了脚步。
12、分页插件
limit index,pageSize
pageSize:每页显示的条数
pageNum:当前页的页码
index:当前页的起始索引,index=(pageNum-1)*pageSize
count:总记录数
totalPage:总页数
totalPage = count / pageSize;
if(count % pageSize != 0){
totalPage += 1;
}
pageSize=4,pageNum=1,index=0 limit 0,4
pageSize=4,pageNum=3,index=8 limit 8,4
pageSize=4,pageNum=6,index=20 limit 8,4
首页 上一页 2 3 4 5 6 下一页 末页
12.1、使用步骤
1 添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
2 配置分页插件
MyBatis 配置 xml 中配置拦截器插件
特别注意,新版拦截器是 com.github.pagehelper.PageInterceptor。
com.github.pagehelper.PageHelper 现在是一个特殊的 dialect 实现类,是分页插件的默认实现类,提供了和以前相同的用法。
<!--
plugins在配置文件中的位置必须符合要求,否则会报错,顺序如下:
properties?, settings?,
typeAliases?, typeHandlers?,
objectFactory?,objectWrapperFactory?,
plugins?,
environments?, databaseIdProvider?, mappers?
-->
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
</plugin>
</plugins>
3 使用:方式一
mapper.xml中的查询语句不用写LIMIT,分页插件会自动添加,只需要写正常查询就可以
例:select * from 表。即可
使用PageHelper
DynamicSQLMapper接口
// 查询全部员工
List<Emp> getEmp();
DynamicSQLMapper.xml
不要再sql语句结尾加;,加了会报错。
(org.apache.ibatis.exceptions.PersistenceException:)
(select emp_id, emp_name, age, gender, dept_id from t_emp; LIMIT ?)
<!--List<Emp> getEmp();-->
<select id="getEmp" resultType="emp">
select emp_id, emp_name, age, gender, dept_id
from t_emp