#pageHelper Mybatis分页插件以及原理 #
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.5
# mybatis分页插件 - pageHelper
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
/**
*mapper层查询所有
*/
@Select("select * from 表名")
List<实体类> queryAll();
List<实体类> queryAll(int pagIndex,int pageSize);
List<实体类> queryAll(int pagIndex,int pageSize){
PageHelper.startPage(pageIndex, pageSize);
List<*> lists = Mapper.queryAll();
PageInfo<*> pageInfo = new PageInfo<*(lists);
}
map.put(“pageInfo ”,pageInfo ) ;
return map;
List<*> queryAll(int pagIndex,int pageSize){
return service.queryAll(int pagIndex,int pageSize);
}
"tokenCheck": 1,
"status": 1,
"information": "查询成功",
"data": {
"total": 40298, //总数
"list": [
{
"carNumber": "晋-AG506A",
"frequency": 513
}
],
"pageNum": 1, //当前页码
"pageSize": 1,//每页显示的条数
"size": 1,//长度
"startRow": 1,//当前页面第一个元素在数据库中的行号
"endRow": 1,//当前页面最后一个元素在数据库中的行号
"pages": 40298,//页码数
"prePage": 0,//前一页
"nextPage": 2,//第一页
"isFirstPage": true,//是否是第一页
"isLastPage": false,//是否是最后一页
"hasPreviousPage": false,//是否有前一页
"hasNextPage": true,//是否有下一页
"navigatePages": 8,//导航页码数
"navigatepageNums": [
1,
2,
3,
4,
5,
6,
7,
8
],//所有导航页号
"navigateFirstPage": 1,
"navigateLastPage": 8,
"lastPage": 8,
"firstPage": 1
}
}
譬如:下面这段代码本来想根据 userName 以及 userCompany 进行条件查询的,但是 startPage() 后面紧跟的不是 userMapper.getUserList(userName, userCompany),因此,分页“并不会生效”,或者说分页用错地方了,用在 userMapper.getById(id) 上了,自然看不到想要的效果。(可自行在控制台查看 sql 的执行效果)
// 设置分页查询条件
PageHelper.startPage(pageNum, pageSize);
// 根据id查询
int user = userMapper.getById(id);
// 根据 userName 和 userCompany 进行条件查询
List userList = userMapper.getUserList(userName, userCompany);
以上就是分页原理 以及分页插件的坑