PageHelper分页

PageHelper分页

不使用分页插件的分页操作

limit关键字:LIMIT [pageNum] [pageSize]

select * from table limit 0,5;

取第一页,返回5条数据

使用Mybatis分页插件PageHelper

在SpringBoot中使用PageHelper首先要在pom.xml中配置PageHelper的依赖:

1
2
3
4
5
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.2.1</version>
</dependency>

在spring的配置文件中配置拦截器插件:

1
2
3
4
5
pagehelper:
helper-dialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql

案例(对用户分页):

1
2
3
4
5
6
7
public PageInfo listUserByPage(int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);//调用该方法后,在此方法后面的第一个mybaits查询语句就会按照这个进行分页,这里就是userMapper.listUser()
List<User> userList=userMapper.listUser();//查询分页用户列表,如果没有上行语句,查询的是没有分页的所有用户列表

PageInfo pageInfo=new PageInfo(userVoList);//将查询列表封装在PageInfo这个类里
return pageInfo;
}

当传入pageNum = 1, pageSize = 5时PageHelper输出的数据结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
"pageNum": 1,
"pageSize": 5,
"size": 5,
"orderBy": null,
"startRow": 1,
"endRow": 5,
"total": 11,
"pages": 3,
"list": [
{
"userId": "a24d0c3b-2786-11e8-9835-e4f89cdc0d1f",
"username": "2015081040"
},
{
"userId": "b0bc9e45-2786-11e8-9835-e4f89cdc0d1f",
"username": "2015081041"
},
{
"userId": "b44fd6ac-2786-11e8-9835-e4f89cdc0d1f",
"username": "2015081042"
},
{
"userId": "b7ac58f7-2786-11e8-9835-e4f89cdc0d1f",
"username": "2015081043"
},
{
"userId": "bbdeb5d8-2786-11e8-9835-e4f89cdc0d1f",
"username": "2015081044"
}
],
"prePage": 0,
"nextPage": 2,
"isFirstPage": true,
"isLastPage": false,
"hasPreviousPage": false,
"hasNextPage": true,
"navigatePages": 8,
"navigatepageNums": [
1,
2,
3
],
"navigateFirstPage": 1,
"navigateLastPage": 3,
"firstPage": 1,
"lastPage": 3
}

PageHelper分页

作者

lvjie

发布于

2022-06-18

许可协议


:D 一言句子获取中...