# MyBatis教程 - 13 SpringBoot整合MyBatis
参考 SpringBoot教程 (opens new window) 中的 SpringBoot整合MyBatis (opens new window) 。
下面介绍一下如何基于 SpringBoot整合MyBatis (opens new window) 继续整合 PageHelper 分页。
# 13.1 集成PageHelper
# 1 引入依赖
在项目或模块的 pom.xml 中引入 PageHelper 的依赖:
<!-- 集成pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<!-- 引入hutool工具包,这里是为了引入一些工具类,方便测试,这个可以不引入! -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.31</version>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
添加完成,右键 -> Maven -> Reload project
。
# 2 添加PageHelper配置
在 application.yaml
或 application.properties
中添加 PagerHelper 的配置,如下:
# 配置PageHelper
pagehelper:
# 指定数据库方言
helperDialect: mysql
# 开启分页合理化
reasonable: true
1
2
3
4
5
6
2
3
4
5
6
- helperDialect:数据库方言,用于生成适用于不同数据库的SQL分页语句。
- reasonable:分页合理化参数,默认为
false
。当设置为true
时,如果pageNum<1
会查询第一页,pageNum>pages
(超过总页数),会查询最后一页。默认false
时,直接根据参数进行查询。 - 如果需要用到其他参数,可以查询 PageHelper 官网。
# 3 测试查询
直接在 test
包下,编写一个 SpringBoot 测试类进行测试:
package com.foooor.hellomybatis;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import com.foooor.hellomybatis.mapper.UserMapper;
import com.foooor.hellomybatis.pojo.User;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@Slf4j
@SpringBootTest
public class MyBatisTest {
// 注入UserMapperMapper
@Autowired
private UserMapper userMapper;
@Test
void testSelectUser() {
// 分页
PageHelper.startPage(1, 5);
List<User> userList = userMapper.selectAll();
// 获取分页详细信息
PageInfo<User> pageInfo = new PageInfo(userList);
log.info("userList:{}", userList.size());
log.info("pageInfo:{}", JSONUtil.toJsonStr(pageInfo));
}
}
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
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
执行结果如下: