一、mysql
前端请求参数包括page_num和page_size, 首先对这两个参数进行合法性判断,然后重新计算下page_num,让当前page_num对应的就是你要定位到的第n条数据,比如现在要查看第6页数据,且page_size=7,那也就是要获取到第37行-43行数据。
复习下mysql中limit的使用:
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。
所以,对于上述情况,对应的偏移量=(7-1)*6=36。
if (page_num != null && page_size != null) {
page_num = (page_num - 1) * page_size;
}
List<Example> data = exampleMapper.getExample(page_num, page_size);
.xml中sql语句示例:
<select id="getExampleByPage" resultMap="AllExampleInfo">
select *
from Example
limit #{page},#{size}
</select>
二、拦截器:
源码在这:https://github.com/pagehelper/Mybatis-PageHelper 实际上就是省了我们去重复写相同逻辑的代码,而且分页返回结果中有很多详细参数。
- 添加maven依赖:
<dependency>
<groupId>com.</