123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package com.alvin;
- import com.baomidou.mybatisplus.annotation.FieldFill;
- import com.baomidou.mybatisplus.generator.FastAutoGenerator;
- import com.baomidou.mybatisplus.generator.config.GlobalConfig;
- import com.baomidou.mybatisplus.generator.config.OutputFile;
- import com.baomidou.mybatisplus.generator.config.builder.Entity;
- import com.baomidou.mybatisplus.generator.config.rules.DateType;
- import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
- import com.baomidou.mybatisplus.generator.fill.Column;
- import java.util.Collections;
- public class Generator {
- public static void main(String[] args) {
- }
- /**
- * 生成文件
- *
- * @param db_url db url
- * @param db_username 数据库用户名
- * @param db_password 数据库密码
- * @param author 作者
- * @param javaDir java dir
- * @param parentPackage 父包
- * @param tableName 表名
- * @param tablePrefix 表前缀
- * @param controller 是否生成 controller
- * @param service 是否生成 service
- * @param serviceImpl 是否生成 serviceImpl
- */
- public static void generatorToFile(String db_url, String db_username, String db_password,
- String author, String javaDir, String parentPackage,
- String tableName, String tablePrefix, Boolean swagger,
- String logicDeleteField, String insertFields, String updateFields,
- Boolean controller, Boolean service, Boolean serviceImpl) {
- FastAutoGenerator generator = FastAutoGenerator.create(db_url, db_username, db_password);
- GlobalConfig.Builder builder1 = new GlobalConfig.Builder();
- //===全局配置
- generator.globalConfig(builder -> {
- builder.author(author) // 设置作者
- .dateType(DateType.ONLY_DATE) // 设置日期为 Date
- .fileOverride() // 覆盖已生成文件
- .outputDir(javaDir); // 指定输出目录
- if (swagger) {
- builder.enableSwagger();// 开启 swagger 模式
- }
- }
- );
- //===模块配置
- generator.packageConfig(builder -> {
- builder.parent(parentPackage) // 设置父包名
- .moduleName("") // 设置父包模块名
- .pathInfo(Collections.singletonMap(OutputFile.mapperXml, javaDir + "/../resources/mapper")); // 设置mapperXml生成路径
- })
- .strategyConfig(builder -> {
- //Controller
- builder.controllerBuilder().enableHyphenStyle() // 开启驼峰转连字符
- .enableRestStyle(); // 开启生成@RestController 控制器
- //mapper
- builder.mapperBuilder().enableMapperAnnotation().build();
- //实体类
- Entity.Builder builder2 = builder.entityBuilder().enableLombok();
- if (logicDeleteField != null && logicDeleteField.trim().length() > 0) {
- builder2.logicDeleteColumnName(logicDeleteField);
- }
- for (String s : insertFields.split(",")) {
- builder2.addTableFills(new Column(s.trim(), FieldFill.INSERT));
- }
- for (String s : updateFields.split(",")) {
- builder2.addTableFills(new Column(s.trim(), FieldFill.INSERT_UPDATE));
- }
- // 设置需要生成的表名
- for (String s : tableName.split(",")) {
- builder.addInclude(s.trim());
- }
- for (String s : tablePrefix.split(",")) {
- builder.addTablePrefix(s.trim());
- }
- })
- .templateEngine(new FreemarkerTemplateEngine())// 使用Freemarker引擎模板,默认的是Velocity引擎模板
- .templateConfig(builder -> builder.entity("templates/entity1.java"));
- if (!controller) {
- generator.templateConfig(builder -> builder.controller("")); // 设置为空则不会生成该文件
- } else {
- generator.templateConfig(builder -> builder.controller("templates/controller1.java"));
- }
- if (!service) {
- generator.templateConfig(builder -> builder.service(""));
- } else {
- generator.templateConfig(builder -> builder.service("templates/service1.java"));
- }
- if (!serviceImpl) {
- generator.templateConfig(builder -> builder.serviceImpl(""));
- } else {
- generator.templateConfig(builder -> builder.serviceImpl("templates/serviceImpl1.java"));
- }
- generator.execute();
- }
- }
|