【SpringBoot】Spring Boot 项目中整合 MyBatis 和 PageHelper

目录

前言

[步骤 1: 添加依赖](#步骤 1: 添加依赖)

[步骤 2: 配置数据源和 MyBatis](#步骤 2: 配置数据源和 MyBatis)

[步骤 3: 配置 PageHelper](#步骤 3: 配置 PageHelper)

[步骤 4: 使用 PageHelper 进行分页查询](#步骤 4: 使用 PageHelper 进行分页查询)

IDEA指定端口启动

总结


前言

Spring Boot 与 MyBatis 的整合是 Java 开发中常见的需求,特别是在使用分页插件如 PageHelper 时。PageHelper 是一个针对 MyBatis 设计的分页插件,可以方便地进行分页查询。下面我将详细说明如何在 Spring Boot 项目中整合 MyBatis 和 PageHelper。

步骤 1: 添加依赖

首先,需要在你的 pom.xml 文件中添加 Spring Boot、MyBatis 和 PageHelper 的依赖。假设你已经有了 Spring Boot 的基础依赖,下面是你需要添加的额外依赖:

XML 复制代码
<!-- Spring Boot MyBatis Starter -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version>
</dependency>

<!-- MySQL数据库连接 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<!-- PageHelper 分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

步骤 2: 配置数据源和 MyBatis

application.propertiesapplication.yml 中配置你的数据库连接和 MyBatis 的相关设置。这里是一个示例配置:

XML 复制代码
# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/your_database?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# MyBatis 配置
mybatis.type-aliases-package=com.example.demo.model
mybatis.mapper-locations=classpath:mapper/*.xml

步骤 3: 配置 PageHelper

通常,如果使用 pagehelper-spring-boot-starter,你不需要额外配置即可使用 PageHelper,因为这个 Starter 自动配置了 PageHelper。但如果需要自定义参数,可以在 application.properties 中进行配置:

XML 复制代码
# PageHelper 分页插件的配置
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql

步骤 4: 使用 PageHelper 进行分页查询

在你的 Mapper 接口或者服务中使用 PageHelper 来进行分页。这里是一个基本的使用示例

java 复制代码
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
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> findUserByPage(int page, int pageSize) {
        // 开启分页
        PageHelper.startPage(page, pageSize);
        // 查询数据
        List<User> users = userMapper.selectAllUsers();
        // 使用PageInfo包装查询结果
        return new PageInfo<>(users);
    }
}

这个服务方法findUserByPage首先通过调用 PageHelper.startPage() 方法启动分页,然后执行查询。PageInfo 对象用于获取分页信息如总页数、总记录数等。

IDEA指定端口启动

在VM options 中:

复制代码
-DServer.port=8080

总结

整合 PageHelper 到 Spring Boot 项目中主要包括添加依赖、配置数据源与 MyBatis、配置 PageHelper 以及在业务逻辑中使用 PageHelper 进行分页查询。这样,你可以在 Spring Boot 应用中方便地进行数据库分页操作,提高应用的性能和用户体验。

相关推荐
我登哥MVP3 分钟前
走进 Gang of Four 设计模式:访问者模式
java·设计模式·访问者模式·原型模式
雪碧聊技术5 分钟前
一文深入理解 Java 函数式编程思想
java·函数式编程
web行路人9 分钟前
Spring Boot 第四周:集成 Spring Security 与 JWT 鉴权实践
spring boot·后端·spring
AIGS0019 分钟前
突破语义鸿沟:从向量空间JBoltAI看企业大脑构建逻辑
java·大数据·人工智能·人工智能ai大模型应用
琢磨先生David15 分钟前
OpenJDK 与 Oracle JDK 完整区别
java
倔强的石头10619 分钟前
企业智能设备运维管理系统:靠飞算 JavaAI,告别 Java 低效搬砖日常
java
深盾科技_Virbox30 分钟前
软件授权工具静默安装实践
java·运维·数据库·安全·软件需求
qq_4523962341 分钟前
第二篇:《Jenkins 从零搭建:安装、配置与第一个 Pipeline》
java·运维·jenkins
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第172题】【07_Redis篇】第8题:`setnx` 做分布式锁存在的问题
java·redis·分布式锁·死锁·setnx
折哥的程序人生 · 物流技术专研1 小时前
Java 23 种设计模式:从踩坑到精通 | 番外:代理 vs 装饰器 —— Spring AOP 到底用了哪个?
java·代理模式·装饰器模式·java面试·java设计模式·springaop·从踩坑到精通