SpringBoot3.2.2整合MyBatis Plus3.5.5的详细过程

 更新时间:2024年01月22日 10:21:34   作者:蒾酒  
这篇文章给大家介绍了SpringBoot3.2.2整合MyBatis Plus3.5.5的详细过程,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

1.前置条件

已经初始化好一个spring boot项目且版本为3X,项目可正常启动

2.导坐标

         <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.5</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis-spring</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>3.0.3</version>
        </dependency>

为何要排除掉mybatis plus整合好的mybatis依赖单独引入一个?

Spring Boot 3.2.2整合MyBatis-Plus 3.5.5依赖不兼容问题SpringBoot3.2.2整合MyBatis-Plus3.5.5依赖不兼容的问题解决_java_脚本之家 (jb51.net)

3.配置数据源

application.yml:

spring:
  datasource:
      url:  jdbc:mysql://localhost:3306/test
      username: root
      password: 123456

4.配置mapper扫描路径

在启动类添加@MapperScan("com.mijiu.mapper")注解指定mapper文件夹

如果不加该注解则要在每个mapper接口添加@Mapper注解

此时可以成功启动项目

看到MyBatis Plus的banner说明到这里整合好了。

5.MyBatis Plus代码生成器整合

官方文档:https://baomidou.com/pages/779a6e/

5.1.导坐标

第一个依赖是代码生成器

第二个是代码生成器所依赖代码生成模板velocity,当然不止这一个模板具体参阅官网

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.5</version>
        </dependency>
 
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>

5.2.编写代码生成逻辑

这里我写好demo了,需要修改的地方已经标记//TODO注释了

如果你的目录结构同作者类似,cv下面的demo修改一下//TODO标注的配置运行即可

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
 
import java.util.*;
 
 
/**
 * @author mijiupro
 */
public class CodeGenerator {
    public static void main(String[] args) {
        getCode();
    }
 
    public static void getCode() {
        //TODO 修改为自己的数据库信息
        String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai";
        String username = "root";
        String password = "123456";
        //TODO 修改为自己的表名
        List<String> tables = List.of("user");//需要生成对应代码的表名的集合
 
        FastAutoGenerator.create(url, username, password)
                //全局配置----------------------------------------------------------------------------------------
                .globalConfig(builder -> {
                    builder
                            .author("蒾酒")//TODO 修改为自己名称
                            .outputDir(System.getProperty("user.dir") + "\\src\\main\\java")// 输出路径(写到java目录)
                            // .enableSwagger() //开启swagger,会自动添加swagger相关注解
                            .commentDate("yyyy-MM-dd");//日期格式
 
 
                })
 
                //包名配置--------------------------------------------------------------------------------------------
                .packageConfig(builder ->
                    builder.parent("com.mijiu")//TODO 修改为自己项目的路径
                            // .moduleName("practice")//模块名,设置该项会在输出路径上增加一层模块名目录
                            .entity("entity")
                            .service("service")
                            .serviceImpl("service.impl")
                            .controller("controller")
                            .mapper("mapper")
                            .xml("mapper/xml")
                )
 
                //策略配置-----------------------------------------------------------------------------------------
                .strategyConfig(builder -> {
                    builder
                            .addInclude(tables)// 需要生成代码对应的表,若需要生成全部表则注释该行解放下一行
                            // .addInclude("all")//生成全部表
                            // .addTablePrefix("p_")//表前缀过滤,例如“p_”开头的表不会生成对应代码
 
                            //实体策略配置
                            .entityBuilder()
                            .enableFileOverride()// TODO 开启覆盖已生成的entity文件,关闭则注释本行
                            .enableLombok()// 自动添加lombok注解@Getter @Setter
                            .logicDeleteColumnName("deleted")// 指定逻辑删除字段名自动为其添加逻辑删除字段注解
                            .enableTableFieldAnnotation()//启用表字段注解@TableField
 
 
                            //Mapper策略配置
                            .mapperBuilder()
                            .enableBaseResultMap() // 生成通用的resultMap
                            .superClass(BaseMapper.class)
                            .formatMapperFileName("%sMapper")//mapper文件后缀,如UserMapper
                            // .enableFileOverride()// TODO 开启覆盖已生成的mapper文件,关闭则注释本行
                            .formatXmlFileName("%sMapper")//xml文件后缀,如UserMapper.xml
 
 
                            //Service策略配置
                            .serviceBuilder()
                            // .enableFileOverride()//TODO 开启覆盖已生成的service文件,关闭则注释本行
                            .formatServiceFileName("%sService")
                            .formatServiceImplFileName("%sServiceImpl")
 
 
                            //Controller策略配置
                            .controllerBuilder()
                            .enableHyphenStyle() // 映射路径使用连字符格式
                            .formatFileName("%sController")
                            // .enableFileOverride()// TODO 开启覆盖已生成的controller文件,关闭则注释本行
                            .enableRestStyle();//启用rest风格自动添加@RestController
 
 
                }).execute();
    }
 
 
}

运行即可。

以上就是SpringBoot3.2.2整合MyBatis Plus3.5.5的详细过程的详细内容,更多关于SpringBoot3.2.2整合MyBatis Plus3.5.5的资料请关注脚本之家其它相关文章!

相关文章

  • java解析xml之jdom解析xml示例分享

    java解析xml之jdom解析xml示例分享

    JDOM是专门为Java打造的API,JDOM采用了Java中的Collection架构来封装集合,是Java爱好者更加熟悉的模式,下面看使用示例
    2014-01-01
  • Windows下使用Graalvm将Springboot应用编译成exe大大提高启动和运行效率(推荐)

    Windows下使用Graalvm将Springboot应用编译成exe大大提高启动和运行效率(推荐)

    这篇文章主要介绍了Windows下使用Graalvm将Springboot应用编译成exe大大提高启动和运行效率,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • MacBook手动安装多版本JDK8&17并配置灵活切换步骤

    MacBook手动安装多版本JDK8&17并配置灵活切换步骤

    作为一名JAVA开发人员,入手一台新电脑后免不了要配置JDK运行环境,这篇文章主要介绍了MacBook手动安装多版本JDK8&17并配置灵活切换的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-03-03
  • SpringBoot集成ffmpeg实现视频转码播放示例详解

    SpringBoot集成ffmpeg实现视频转码播放示例详解

    这篇文章主要为大家介绍了SpringBoot集成ffmpeg实现视频转码播放示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • java中Date和Timestamp类型的相互转换方式

    java中Date和Timestamp类型的相互转换方式

    这篇文章主要介绍了java中Date和Timestamp类型的相互转换方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Java操作数据库(行级锁,for update)

    Java操作数据库(行级锁,for update)

    这篇文章主要介绍了Java操作数据库(行级锁,for update),文章围绕Java操作数据库的相关资料展开详细内容,需要的小伙伴可以参考一下,希望对你有所帮助
    2021-12-12
  • 使用Java实现一个解析CURL脚本小工具

    使用Java实现一个解析CURL脚本小工具

    文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KV Map结构,获取URL路径、请求类型,解析URL参数列表和Body请求体,感兴趣的小伙伴跟着小编一起来看看吧
    2025-02-02
  • java如何更改数据库中的数据

    java如何更改数据库中的数据

    这篇文章主要介绍了java如何更改数据库中的数据,修改数据库是数据库操作必不可少的一部分,使用Statement接口中的excuteUpdate()方法可以修改数据表中的数据,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • 关于jpa querydsl嵌套查询demo

    关于jpa querydsl嵌套查询demo

    这篇文章主要介绍了关于jpa querydsl 嵌套查询demo,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 如何使用spring boot的程序主线程中异步访问外部接口

    如何使用spring boot的程序主线程中异步访问外部接口

    CompletableFuture.supplyAsync提供了一种强大的工具,使您能够以异步方式执行操作,充分利用多核处理器和提高程序性能,同时保持代码的清晰性和可维护性,本文给大家介绍使用spring boot的程序主线程中异步访问外部接口,感兴趣的朋友一起看看吧
    2023-10-10

最新评论