1.引入pom依赖
<!--我的是springCloud项目,这个放在了fast-service的pom文件中--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.4</version> </dependency> <!--上边的依赖包含这个生成器,若只是想用代码生成,引入这个包就行--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.4.1</version> </dependency> <!--我的是springCloud项目,这个放在了fast-service的pom文件中,MyBatis-Plus 支持 Velocity(默认)--> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.3</version> </dependency>
2.代码配置类
public class Generator { public static void main(String[] args) { // 代码生成器 AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); String projectPath = System.getProperty("user.dir"); gc.setOutputDir(projectPath + "/fast-service-api/fast-system-api/src/main/java"); gc.setAuthor("hujunwei"); //生成后是否打开资源管理器 gc.setOpen(false); //重新生成文件时是否覆盖 gc.setFileOverride(true); //去掉Service接口的首字母 gc.setServiceName("%sService"); //主键策略 gc.setIdType(IdType.ID_WORKER); //定义生成的实体类中日期类型 gc.setDateType(DateType.TIME_PACK); //开启swagger2模式 gc.setSwagger2(true); mpg.setGlobalConfig(gc); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setUrl("jdbc:mysql://192.168.26.127:33306/fast-system?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"); dsc.setDriverName("com.mysql.cj.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("root"); dsc.setDbType(DbType.MYSQL); mpg.setDataSource(dsc); // 包配置 PackageConfig pc = new PackageConfig(); //模块名 pc.setModuleName(null); //模块下java包下的包路径 pc.setParent("com.system"); pc.setEntity("entity"); mpg.setPackageInfo(pc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); //对哪些表生成代码,多个用逗号隔开,把这句话注掉则默认生成所有表 // strategy.setInclude("user"); //数据库表名转实体:下划线转驼峰 strategy.setNaming(NamingStrategy.underline_to_camel); //数据库表字段名转实体:下划线转驼峰 strategy.setColumnNaming(NamingStrategy.underline_to_camel); //生成实体时,去掉表前缀 strategy.setTablePrefix("fast_system_"); //lombok 模型 @Accessors(chain = true) setter链式操作 strategy.setEntityLombokModel(true); //restful api风格控制器 strategy.setRestControllerStyle(true); //url中驼峰转下划线 strategy.setControllerMappingHyphenStyle(true); //设置自动填充字段 List<TableFill> tableFillList = new ArrayList<>(); tableFillList.add(new TableFill("update_by", FieldFill.INSERT_UPDATE)); tableFillList.add(new TableFill("update_time", FieldFill.INSERT_UPDATE)); tableFillList.add(new TableFill("create_by", FieldFill.INSERT)); tableFillList.add(new TableFill("create_time", FieldFill.INSERT)); tableFillList.add(new TableFill("status", FieldFill.INSERT)); tableFillList.add(new TableFill("is_deleted", FieldFill.INSERT)); strategy.setTableFillList(tableFillList); mpg.setStrategy(strategy); // mpg.setTemplateEngine(new FreemarkerTemplateEngine()); mpg.execute(); } }
3.备用模板
<dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version> </dependency> <!-- https://mvnrepository.com/artifact/com.ibeetl/beetl --> <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetl</artifactId> <version>3.1.3.RELEASE</version> </dependency>