MP代码生成器

MP代码生成器

官网文档

使用方式

  1. 导入坐标

    注意mybatis-plus-generator的版本必须为3.5.1

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!--MybatisPlus、MybatisPlus生成器-->
    <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
    </dependency>
    <dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
    </dependency>
    <dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.30</version>
    </dependency>
  2. 编写配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    server:
    port: 8080
    spring:
    datasource:
    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456

    mybatis:
    mapper-locations:
    - classpath:mapper/*.xml
    - classpath*:com/**/mapper/*.xml
  3. 编写代码,执行

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    package com.xw.mallLearning.generator;

    /**
    * 用于生产MBG的代码
    */
    public class Generator {
    // 基础信息配置
    private static final String URL = "jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "123456";
    private static final String PARENT_PACKAGE_NAME = "com.xw.mallLearning.generator"; // 包名
    private static final String PROJECT_ROOT_PATH = System.getProperty("user.dir");
    private static final String PROJECT_NAME = "mall-learning"; // 当前项目名称
    private static final String MODULE_NAME = "mbg"; // 模块名称, 代码会生成在generator/MODULE_NAME下


    /**
    * 执行此处
    */
    public static void main(String[] args) {
    simpleGenerator();
    }

    protected static void simpleGenerator() {
    // 添加需要自动生成代码的表名, 为空则生成所有表对应代码
    List<String> tables = new ArrayList<>();
    tables.add("pms_brand");

    // 包路径
    String packagePath = PROJECT_ROOT_PATH + "/" + PROJECT_NAME + "/src/main/java";
    // XML文件的路径
    String mapperXmlPath = PROJECT_ROOT_PATH + "/" + PROJECT_NAME + "/src/main/resources/mapper";

    // 开始执行代码生成
    FastAutoGenerator.create(URL, USERNAME, PASSWORD)
    // 1. 全局配置
    .globalConfig(builder -> builder
    // 作者名称
    .author("xw")
    // 开启覆盖已生成的文件。注释掉则关闭覆盖。
    .fileOverride()
    // 禁止打开输出目录。注释掉则生成完毕后,自动打开生成的文件目录。
    .disableOpenDir()
    // 指定输出目录。如果指定,Windows生成至D盘根目录下,Linux or MAC 生成至 /tmp 目录下。
    .outputDir(packagePath)
    // 开启swagger2.注释掉则默认关闭。
    // .enableSwagger()
    // 指定时间策略。
    .dateType(DateType.TIME_PACK)
    // 注释时间策略。
    .commentDate("yyyy-MM-dd")
    )

    // 2. 包配置
    .packageConfig(builder -> builder
    // 设置父表名
    .parent(PARENT_PACKAGE_NAME)
    .moduleName(MODULE_NAME)
    .entity("entity")
    .service("service")
    .serviceImpl("service.impl")
    .controller("controller")
    .mapper("mapper")
    .xml("mapper")
    // mapper.xml 文件的路径。单模块下,其他文件路径默认即可。
    .pathInfo(Collections.singletonMap(OutputFile.mapperXml, mapperXmlPath))
    )

    // 3. 策略配置
    .strategyConfig(builder -> builder.addInclude(tables)
    // 阶段1:Entity实体类策略配置
    .entityBuilder()
    // 开启生成实体时生成字段注解。
    // 会在实体类的属性前,添加[@TableField("nickname")]
    .enableTableFieldAnnotation()
    // 逻辑删除字段名(数据库)。
    //.logicDeleteColumnName("is_delete")
    // 逻辑删除属性名(实体)。
    // 会在实体类的该字段属性前加注解[@TableLogic]
    //.logicDeletePropertyName("isDelete")
    // 会在实体类的该字段上追加注解[@TableField(value = "create_time", fill = FieldFill.INSERT)]
    .addTableFills(new Column("create_time", FieldFill.INSERT))
    // 会在实体类的该字段上追加注解[@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)]
    .addTableFills(new Column("update_time", FieldFill.INSERT_UPDATE))
    // 阶段2:Mapper策略配置
    .mapperBuilder()
    // 开启 @Mapper 注解。
    // 会在mapper接口上添加注解[@Mapper]
    .enableMapperAnnotation()
    // 启用 BaseResultMap 生成。
    // 会在mapper.xml文件生成[通用查询映射结果]配置。
    .enableBaseResultMap()
    // 启用 BaseColumnList。
    // 会在mapper.xml文件生成[通用查询结果列 ]配置
    .enableBaseColumnList()
    // 阶段4:Controller策略配置
    .controllerBuilder()
    // 会在控制类中加[@RestController]注解。
    .enableRestStyle()
    // 开启驼峰转连字符
    .enableHyphenStyle()
    .build()
    )

    // 4. 模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker
    //.templateEngine(new BeetlTemplateEngine())
    .templateEngine(new FreemarkerTemplateEngine())

    // 5. 执行
    .execute();
    }
    }


MP代码生成器
http://xwww12.github.io/2023/02/03/数据库/mysql/mybatis-plus/MP代码生成器/
作者
xw
发布于
2023年2月3日
许可协议