Spring Boot整合MyBatis-Plus,并通过AutoGenerator生成项目骨架代码

作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper。

Mybatis Generator 是 MyBatis 官方提供的一个代码生成工具,完全可以胜任这个工作,不过最近在开发项目的时候试用了一下 MyBatis-Plus 官方提供 AutoGenerator,发现配置更简单,开发效率更高!

导入 SQL 文件

我用的MySQL 版本是 8.0,可以在链接上 MySQL 后使用 select version(); 命令查询版本。

打开 Navicat,把 SQL 文件导入到本地数据库

体验 MyBatis-Plus 的 AutoGenerator

AutoGenerator 是 MyBatis-Plus 推出的代码生成器,可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,比 Mybatis Generator 更强大,开发效率更高。

第一步,在 pom.xml 文件中添加 AutoGenerator 的依赖。

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.4.1</version>
</dependency>

第二步,添加模板引擎依赖,MyBatis-Plus 支持 Velocity(默认)、Freemarker、Beetl,这里使用 Freemarker引擎。

     <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.31</version>
        </dependency>

第三步,新建 CodeGenerator.java 文件,在 main 方法中添加 MyBatis-Plus 的 AutoGenerator 对象。

public class CodeGenerator {
    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

在 main 方法中添加全局配置。


        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("藏三");
        gc.setOpen(false);
        gc.setDateType(DateType.ONLY_DATE);
        gc.setSwagger2(true);
        gc.setIdType(IdType.AUTO);
        gc.setBaseColumnList(true);
        gc.setBaseResultMap(true);
        gc.setFileOverride(true);

        mpg.setGlobalConfig(gc);

解释:

这段代码是使用MyBatis-Plus的代码生成器(mpg)来配置全局参数。具体解释如下:

1. 创建一个GlobalConfig对象,用于设置全局配置信息。
2. 获取当前项目的路径,并将其设置为输出目录。
3. 设置作者为"藏三"。
4. 设置是否打开输出目录,这里设置为false,表示不打开。
5. 设置日期类型为仅日期。
6. 设置是否启用Swagger2,这里设置为true,表示启用。
7. 设置主键策略为自动递增。
8. 设置是否生成BaseColumnList,这里设置为true,表示生成。
9. 设置是否生成BaseResultMap,这里设置为true,表示生成。
10. 设置是否覆盖已有文件,这里设置为true,表示覆盖。
11. 将GlobalConfig对象设置到mpg中。

配置数据源。

// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/codingmore?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("123");

mpg.setDataSource(dsc);

第五步,配置包。

// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("top.codingmore.mpg");

更多配置项可以到官方查看:

代码生成器配置旧 | MyBatis-Plus

完整代码如下所示:

public class CodeGenerator {
    public static void main(String[] args) {
        // 代码生成器
        AutoGenerator mpg = new AutoGenerator();

        // 全局配置
        GlobalConfig gc = new GlobalConfig();
        String projectPath = System.getProperty("user.dir");
        gc.setOutputDir(projectPath + "/src/main/java");
        gc.setAuthor("藏三");
        gc.setOpen(false);
        gc.setDateType(DateType.ONLY_DATE);
        gc.setSwagger2(true);
        gc.setIdType(IdType.AUTO);
        gc.setBaseColumnList(true);
        gc.setBaseResultMap(true);
        gc.setFileOverride(true);

        mpg.setGlobalConfig(gc);

        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl("jdbc:mysql://localhost:3306/codingmore?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
        dsc.setUsername("root");
        dsc.setPassword("1qazdsad");

        mpg.setDataSource(dsc);

        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setParent("top.codingmore.mpg");
        mpg.setPackageInfo(pc);

        mpg.execute();
    }
}

再来看一下运行后的效果,可以看到数据库表对应的 controller、service、entity、mapper 等等全有了。

相关推荐

  1. SpringBoot整合MyBatis-Plus

    2024-03-31 00:22:01       59 阅读
  2. springBoot mybatis-plus整合

    2024-03-31 00:22:01       34 阅读
  3. springboot整合mybatis-plus

    2024-03-31 00:22:01       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-31 00:22:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-31 00:22:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-31 00:22:01       82 阅读
  4. Python语言-面向对象

    2024-03-31 00:22:01       91 阅读

热门阅读

  1. ChatGPT写作攻略:完善学术论文技巧指南

    2024-03-31 00:22:01       42 阅读
  2. Linux IRC

    Linux IRC

    2024-03-31 00:22:01      41 阅读
  3. 工作日志- 不定期更新

    2024-03-31 00:22:01       44 阅读
  4. P19:注释

    2024-03-31 00:22:01       37 阅读
  5. 实现元素水平垂直居中的方法

    2024-03-31 00:22:01       44 阅读
  6. SpringBoot -- 错误处理机制

    2024-03-31 00:22:01       43 阅读
  7. vue3从精通到入门1: vue3特点以及与vue2的区别

    2024-03-31 00:22:01       41 阅读
  8. 面试宝典:深入分析golang 的反射(reflect)

    2024-03-31 00:22:01       36 阅读
  9. 深入Python元编程:从基础到实践

    2024-03-31 00:22:01       39 阅读
  10. 面试题库二

    2024-03-31 00:22:01       44 阅读
  11. 蓝桥杯刷题记录之蓝桥王国

    2024-03-31 00:22:01       45 阅读
  12. C/C++ ② —— C++11智能指针

    2024-03-31 00:22:01       34 阅读
  13. 【前端学习——css篇】3.隐藏元素的方法

    2024-03-31 00:22:01       35 阅读