Mybatis-Plus代码自动生成器的使用与配置

  • Post author:
  • Post category:其他


自己开发项目MP这个框架是很常用的,它的插件自动生成代码用起来效率也很高,但是第一次使用配置还是会睬很多坑,现在来记录一下使用过程。

  1. 项目结构

    为了不影响其他模块,为自动生成器新建一个stray-plugins Maven模块。

    在这里插入图片描述
  2. POM文件
<dependencies>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
        </dependency>
    </dependencies>

其实生成代码只需要这两个依赖就行了

  1. 生成器主类

    自己对它原来的示例代码改变了一下,生成出来的代码剪切粘贴到别的模块下就可以使用了。
package com.nothing.plugins;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 * 代码生成器
 */
public class MybatisPlusGenerator {
    /**
     * 执行 run
     */
    public static void main(String[] args) throws SQLException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入表名,空格隔开");
        String[] input = scanner.nextLine().split(" ");
        ArrayList<String> target = new ArrayList<>();
        for (String s : input) target.add(s);
        generate(target);
    }

    private static void generate(List<String> targets){
        FastAutoGenerator.create("jdbc:mysql://localhost:3306/stray_home?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai",
                "root", "20001030") //数据库连接配置
                .globalConfig(builder -> {
                    builder.author("zhuhodor") //作者
                            .enableSwagger() //开启swagger注解
                            .fileOverride()
                            .commentDate("yyyy-MM-dd")
                            .outputDir(System.getProperty("user.dir")+"\\stray-plugins\\src\\main\\java");
                })
                .packageConfig(builder -> {//生成文件夹位置配置
                    builder.parent("com.nothing")
                            .moduleName("plugins")
                            .entity("model")
                            .service("service")
                            .serviceImpl("service.impl")
                            .controller("controller")
                            .mapper("mapper")
                            .xml("mapper")
                            .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir")+"\stray-plugins\src\main\resources\mapper"));
                })
                .strategyConfig(builder -> {
                    builder.addInclude(targets)
                            .addTablePrefix("s_") //表前缀
                            .serviceBuilder()
                            .formatServiceFileName("I%sService")
                            .formatServiceImplFileName("%sServiceImpl")
                            .entityBuilder()
                            .enableLombok()
                            .logicDeleteColumnName("deleted") //逻辑删除列
                            .enableTableFieldAnnotation()
                            .controllerBuilder()
                            .formatFileName("%sController")
                            .enableRestStyle()
                            .mapperBuilder()
                            .formatMapperFileName("%sMapper")
                            .enableMapperAnnotation()
                            .formatXmlFileName("%sMapper");
                })
                .templateEngine(new FreemarkerTemplateEngine())
                .execute();
    }
}

  1. 成功

    在这里插入图片描述


    注意


    System.getProperty(“user.dir”)这个路径代表的是工程根目录,知道这点生成的代码就不会乱跑了。



版权声明:本文为qq_44025894原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。