SpringBoot3专栏-SpringBoot3.4.4整合Mybatis-plus和Mybatis

1,573 阅读3分钟

贝恩聊架构-springboot3专栏.png 贝恩聊架构-SpringBoot3专栏内容定位主要为SpringBoot3整合各大框架和中间件,通过输出入门技术文章和基于源代码的技术案例,让读者基于本系列技术文章和源代码快速掌握SpringBoot3和各大开源框架、中间件的整合应用。给技术开发者节约环境搭建和框架整合所耗费的时间,开发人员都知道在框架整合的过程中会遇到各种技术问题和环境问题,所以参考已有搭建好的框架及功能能大大提高学习和工作效率。

完整代码在文章最后,如果觉得本篇文章对你有用,记得点赞、关注、收藏哦。你的支持是我持续更新的动力!

SpringBoot3专栏软件环境

  • JDK17.0.13
  • SpringBoot3.4.4
  • Nacos-Server2.4.1
  • IDEA2024.3.5

我们先看本篇文章对应的项目结构,请看下图

springboot3.4.0-project-011

1 父工程pom.xml

父工程主要用于管理Springboot3专栏各大框架的版本和管理各子工程

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.itbeien</groupId>
    <artifactId>springboot3-labs-master</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

  <!--  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.0</version>
    </parent>-->

    <modules>
        <module>springboot-nacos</module>
        <module>springboot-mybatis-plus</module>
        <module>spingboot-mybatis</module>
        <module>mybatis-generator</module>
        <module>springboot-mybatis-nacos</module>
    </modules>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <nacos-config-spring-boot-starter-version>0.2.12</nacos-config-spring-boot-starter-version>
        <lombok-version>1.18.34</lombok-version>
        <mybatis-plus-spring-boot3-starter-version>3.5.9</mybatis-plus-spring-boot3-starter-version>
        <mysql-connector-java-version>5.1.49</mysql-connector-java-version>
        <spring-boot-dependencies-version>3.4.4</spring-boot-dependencies-version>
        <mybatis-spring-boot-version>3.0.3</mybatis-spring-boot-version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot-dependencies-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>nacos-config-spring-boot-starter</artifactId>
                <version>${nacos-config-spring-boot-starter-version}</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok-version}</version>
            </dependency>
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
                <version>${mybatis-plus-spring-boot3-starter-version}</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql-connector-java-version}</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis-spring-boot-version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>

2 SpringBoot3.4.4整合MyBatis

在整合任何类型的框架和中间件时,我们要确定好对应的版本,本文我们用的mybatis的版本为最新版本,引入的starter也是最新版本,请看具体的配置信息

2.1 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>cn.itbeien</groupId>
        <artifactId>springboot3-labs-master</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>spingboot-mybatis</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

2.2 配置文件

配置文件采用多环境配置形式

# application.properties
# 应用服务 WEB 访问端口
#server.port=9029
# 实现多环境部署
spring.profiles.active=test
# application-test.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.0.104:3306/springboot3?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=rootpwd20240809
spring.sql.init.schema-locations=classpath:db/schema-mysql.sql
spring.sql.init.data-locations=classpath:db/data-mysql.sql
spring.sql.init.mode=always
logging.level.cn.itbeien.mybatis.plus=debug
# MyBatis配置
# 搜索指定包别名
mybatis.typeAliasesPackage=cn.itbeien.**.entity
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mybatis.mapperLocations=classpath*:mapper/**/*Mapper.xml

2.3 单元测试代码

package cn.itbeien.mybatis.test;


import cn.itbeien.mybatis.dao.SysUserMapper;
import cn.itbeien.mybatis.entity.SysUser;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

/**
 * @author itbeien
 * 项目网站:https://www.itbeien.cn
 * 公众号:贝恩聊架构
 * 全网同名,欢迎小伙伴们关注
 * Copyright© 2025 itbeien
 */
@SpringBootTest
public class MyBatisTest {
    @Resource
    private SysUserMapper sysUserMapper;

    @Test
    public void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        List<SysUser> userList = sysUserMapper.selectByExample(null);
        Assertions.assertEquals(5, userList.size());
        userList.forEach(System.out::println);
    }
}

2.4 运行结果

mybatis-run

3 SpringBoot3.4.0整合Mybatis-plus

3.1 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>cn.itbeien</groupId>
        <artifactId>springboot3-labs-master</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>springboot-mybatis-plus</artifactId>


    <dependencies>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3.2 配置文件

#application.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.0.104:3306/springboot3?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=rootpwd20240809
spring.sql.init.schema-locations=classpath:db/schema-mysql.sql
spring.sql.init.data-locations=classpath:db/data-mysql.sql
spring.sql.init.mode=always
logging.level.cn.itbeien.mybatis.plus=debug

3.3 单元测试代码

package cn.itbeien.mybatis.plus.test;

import cn.itbeien.mybatis.plus.entity.SysUser;
import cn.itbeien.mybatis.plus.mapper.SysUserMapper;
import jakarta.annotation.Resource;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;


/**
 * @author itbeien
 * 项目网站:https://www.itbeien.cn
 * 公众号:贝恩聊架构
 * 全网同名,欢迎小伙伴们关注
 * Copyright© 2025 itbeien
 */
@SpringBootTest
public class MyBatisPlusTest {

    @Resource
    private SysUserMapper userMapper;

    @Test
    public void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        List<SysUser> userList = userMapper.selectList(null);
        Assertions.assertEquals(5, userList.size());
        userList.forEach(System.out::println);
    }

}

3.4 运行结果

mybatis-plus-run

4 SpringBoot3.4.0整合Nacos

4.1 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>cn.itbeien</groupId>
        <artifactId>springboot3-labs-master</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>springboot-nacos</artifactId>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-config-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

4.2 配置文件

# application.properties
# nacos-server2.4.1
# 应用服务 WEB 访问端口
#server.port=9029
# 实现多环境部署
spring.profiles.active=test
# 开启配置预加载功能,配置文件方式实现nacos动态配置
nacos.config.bootstrap.enable=true
# application-test.properties
# nacos ip和端口
nacos.config.server-addr=192.168.0.105:8848
nacos.config.username=nacos
nacos.config.password=nacos
# data-id 配置文件的文件名
nacos.config.data-id=nacos-labs
#nacos.config.type=yaml
nacos.config.type=properties
# group-id 项目或则组件的名称
nacos.config.group=springboot3-labs-master
#test 项目环境
nacos.config.namespace=9e31a26c-b167-4abb-80e3-991963ba02bd
#nacos配置文件是否自动刷新
nacos.config.auto-refresh=true

springboot3-lab-master-nacos

springboot3-lab-master-nacos-properties

项目中的mybatis-nacos版本使用的就是上图中的数据源配置,这里不进行单独讲解,请自行查看源码

4.3 运行结果

springboot-nacos-01

欢迎大家关注我的项目实战内容itbeien.cn,一起学习一起进步,在项目和业务中理解各种技术。

5 源码地址

贝恩聊架构-SpringBoot3专栏系列文章、资料和源代码会同步到以下地址,代码和资料每周都会同步更新

该仓库地址主要用于贝恩聊架构-SpringBoot3专栏、基于企业级支付系统,学习微服务整体技术栈

Gitee:gitee.com/itbeien/pro…

Github:github.com/itbeien/pro…

programmer-guide