详解 Spring Boot 2.7.18 与 MyBatis PageHelper 的整合步骤
一、添加依赖
在 pom.xml 文件中添加必要的依赖:
<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- MyBatis Starter -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.2</version>
    </dependency>
    <!-- MySQL Connector -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <!-- PageHelper Starter -->
    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>1.4.2</version>
    </dependency>
    <!-- Spring Boot Test Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
二、配置数据源
在 application.properties 或 application.yml 中配置数据源信息,例如:
spring.datasource.url=jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
三、配置 MyBatis 和 PageHelper
可以在 application.properties 或 application.yml 中添加 MyBatis 和 PageHelper 的配置:
# MyBatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.demo.entity
# PageHelper 配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
四、创建 Mapper 接口和 XML 文件
- 创建 Mapper 接口,例如 UserMapper.java:
package com.example.demo.mapper;
import com.example.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper {
    @Select("SELECT * FROM user")
    List<User> findAll();
}
- 创建对应的 XML 文件,例如 UserMapper.xml:
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//DO"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
    <!-- 这里可以添加更多的 SQL 映射 -->
</mapper>
五、使用 PageHelper 进行分页
在 Service 层使用 PageHelper 进行分页操作,例如 UserService.java:
package com.example.demo.service;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public PageInfo<User> findAllUsers(int pageNum, int pageSize) {
        // 开启分页,传入页码和每页大小
        PageHelper.startPage(pageNum, pageSize);
        List<User> userList = userMapper.findAll();
        // 将结果封装为 PageInfo 对象
        return new PageInfo<>(userList);
    }
}
六、创建 Controller 层
在 Controller 层调用 Service 层进行分页查询,例如 UserController.java:
package com.example.demo.controller;
import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
    @Autowired
    private UserService userService;
    @GetMapping("/users")
    public PageInfo<User> getUsers(
            @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
            @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
        return userService.findAllUsers(pageNum, pageSize);
    }
}
代码解释:
- 添加依赖:
- spring-boot-starter-web是 Spring Boot 的 Web 开发依赖。
- mybatis-spring-boot-starter是 MyBatis 集成 Spring Boot 的依赖。
- mysql-connector-java是 MySQL 的数据库驱动。
- pagehelper-spring-boot-starter是 PageHelper 集成 Spring Boot 的依赖。
- spring-boot-starter-test是用于测试的依赖。
 
- 配置数据源:
- 配置数据库的连接信息,包括 url、username、password和driver-class-name。
 
- 配置数据库的连接信息,包括 
- 配置 MyBatis 和 PageHelper:
- mybatis.mapper-locations配置 Mapper XML 文件的位置。
- mybatis.type-aliases-package配置实体类的包名。
- pagehelper.helperDialect配置数据库方言,这里使用的是 MySQL。
- pagehelper.reasonable开启合理化分页,当- pageNum小于 1 时,自动查询第一页,当- pageNum大于总页数时,自动查询最后一页。
- pagehelper.supportMethodsArguments支持通过方法参数进行分页。
- pagehelper.params配置参数名称,用于传递分页参数。
 
- Mapper 接口和 XML 文件:
- UserMapper接口使用- @Mapper注解将其注册为 MyBatis 的 Mapper。
- @Select注解用于直接在接口中写 SQL 语句。
- UserMapper.xml是对应的 SQL 映射文件,可添加更多复杂的 SQL 操作。
 
- 使用 PageHelper 进行分页:
- 在 UserService中使用PageHelper.startPage(pageNum, pageSize)开启分页。
- 调用 userMapper.findAll()获取分页数据。
- 使用 PageInfo封装分页结果,包含分页信息和数据列表。
 
- 在 
- Controller 层:
- 在 UserController中接收pageNum和pageSize参数,调用UserService进行分页查询,并将结果返回。
 
- 在 
这样,你就完成了在 Spring Boot 2.7.18 中集成 MyBatis PageHelper 的操作,可以实现分页查询功能。
注意事项:
- 确保 mapper/*.xml路径和com.example.demo.entity包名根据实际情况修改。
- 不同的数据库方言可能需要修改 pagehelper.helperDialect的配置。
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号