注意事项
1. 代码生成器的依赖需要和mybatis plus的依赖版本相同,对于模板没有要求。
2.
引入依赖
<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.28</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-extension</artifactId> <version>3.4.3</version> </dependency>
自用代码
package com.equipment; import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine; import java.util.Collections; /** * @author xq * @data 2022/2/23 11:17 */ public class Code { // 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中 public static void main(String[] args) { FastAutoGenerator.create("jdbc:mysql://192.168.1.11:3306/qqq?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&allowMultiQueries=true", "root", "root") .globalConfig(builder -> { builder.author("xq") // 设置作者 .enableSwagger() // 开启 swagger 模式 .commentDate("yyyy-MM-dd") // 设置注释日期的格式 .fileOverride() // 覆盖已生成文件 .outputDir("D:\\demo\\src\\main\\java"); // 指定输出目录 }) .packageConfig(builder -> { builder.parent("com.demo") // 设置父包名 // .moduleName("") // 设置父包模块名 .entity("entity.DO") // 设置实体类生成位置,DO不能小写,是关键字 .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\demo\\src\\main\\java\\com\\demo\\mapper\\mapping\\")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude("t_table1", "t_table2") // 设置需要生成的表名 .addTablePrefix("t_" ) // 设置过滤表前缀,在生成实体类时会将过滤的表前缀去掉 .entityBuilder()// 进入实体类生成配置 .enableLombok()// 开启lombok,默认false .enableRemoveIsPrefix()// 设置将表中字段的is前缀删除 .enableTableFieldAnnotation()// 开启生成实体时生成字段注解 .formatFileName("%sDo")// 设置生成实体类的文件名后缀 .build() .serviceBuilder()// 进入服务层生成配置 .formatServiceFileName("%sService")// 设置生成服务层的文件名后缀,不设置的话服务层首字母会添加一个I .build(); }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } }