# 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

添加完成,右键 -> Maven -> Reload project

# 2 添加PageHelper配置

application.yamlapplication.properties 中添加 PagerHelper 的配置,如下:

# 配置PageHelper
pagehelper:
  # 指定数据库方言
  helperDialect: mysql
  # 开启分页合理化
  reasonable: true
1
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

执行结果如下: