Commit 77fbdc84 authored by zhoushiguang's avatar zhoushiguang

代码生成器

parent 6e7f593c
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>gernerator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gernerator</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<ignite.version>2.8.1</ignite.version>
</properties>
<dependencies>
<!-- MyBatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-typehandlers-jsr310</artifactId>
<version>1.0.2</version>
</dependency>
<!--<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>3.1</version>
</dependency>-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
<!-- 默认模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
<exclusions>
<exclusion>
<artifactId>javassist</artifactId>
<groupId>org.javassist</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
/**
* @ClassName:Generator
* @Description:代码自动生成器
*/
public class CodeGeneratorMYSQLPlus {
static String baseOutputDir = "./signal-optimize-service";
static String subModulePackage = ".judgeanalysis";
public static void main(String[] args) {
// 生成地址 : // System.getProperty("user.dir") == 得到当前项目的实际地址
String outputDir = System.getProperty("user.dir") + "/src/main/java";
outputDir = baseOutputDir + "/src/main/java";
System.out.println(outputDir);
// 表名, 注意大小写
String[] tableNames = new String[]{"t_analysis_problem_cross_day"};
// 数据库地址
String url = "jdbc:mysql://localhost:3306/wjdit_ecosystem_db_v1.0.0?serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&characterEncoding=utf8";
// 用户名
String userName = "root";
// 密码
String password = "123456";
// 父包路径
String parentPackage = "net.wanji.opt";
// 需要去掉的表名前缀
String prefixTable = "t_";
generate(outputDir, tableNames, url, userName, password, parentPackage, prefixTable);
}
/**
* @param outputDir 生成地址
* @param tableNames 表名
* @param url 数据库地址
* @param userName 用户名
* @param password 密码
* @param parentPackage 父包路径
* @param prefixTable 需要去掉的表名前缀
*/
public static void generate(String outputDir, String[] tableNames, String url, String userName,
String password, String parentPackage, String prefixTable) {
// =============== 全局配置 ==================
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(outputDir)
.setActiveRecord(false) // 是否支持 AR, 实体类只需继承 Model 类即可进行强大的 CRUD 操作
.setAuthor("fengyi") // 设置作者名字
.setFileOverride(true) // 文件覆盖(全新文件)
.setIdType(IdType.AUTO) // 主键策略
.setBaseResultMap(true) // SQL 映射文件
.setBaseColumnList(true) // SQL 片段
.setServiceName("%sService") // service的名字
.setMapperName("%sMapper")
.setOpen(false);
// ================= 数据源配置 ===============
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDbType(DbType.MYSQL)
.setDriverName("com.mysql.jdbc.Driver");
dsc.setUrl(url)
.setUsername(userName)
.setPassword(password);
// ================= 包配置 ===================
PackageConfig pc = new PackageConfig();
pc.setParent(parentPackage) // 配置父包路径
// .setModuleName("base") // 配置业务包路径
.setMapper("dao.mapper" + subModulePackage)
.setEntity("entity" + subModulePackage)
.setService("servicev2" + subModulePackage)
.setServiceImpl("servicev2" + subModulePackage + ".impl") // 会自动生成 impl,可以不设定
.setController("controllerv2" + subModulePackage);
// ================== 自定义配置 =================
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
List<FileOutConfig> focList = new ArrayList<>();
// 调整 xml 生成目录演示
focList.add(new FileOutConfig("/templates/mybatisplus/mapper.xml.ftl") {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输入文件名称
return baseOutputDir + "/src/main/resources/mapper/" + subModulePackage.substring(1) + "/"
+ tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
// =================== 策略配置 ==================
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel) // 表名命名: underline_to_camel 底线变驼峰
.setColumnNaming(NamingStrategy.underline_to_camel) // 字段命名: underline_to_camel 底线变驼峰
.setInclude(tableNames) // 需要生成的 表名
.setCapitalMode(true) // 全局大写命名 ORACLE 注意
.setTablePrefix(prefixTable) // 去掉 表的前缀
// .setFieldPrefix(pc.getModuleName() + "_") // 去掉字段前缀
// .setSuperEntityClass("com.maoxs.pojo") // 继承类
// .setSuperControllerClass("com.maoxs.controller") // 继承类
// .setSuperEntityColumns("id") // 设置超级超级列
.setEntityLombokModel(true) // 是否加入lombok
.setControllerMappingHyphenStyle(true) // 设置controller映射联字符
.setRestControllerStyle(true)
;
//自动填充字段,在项目开发过程中,例如创建时间,修改时间,每次,都需要我们来指定,太麻烦了,设置为自动填充规则,就不需要我们赋值咯
// List<TableFill> list = new ArrayList<TableFill>();
// TableFill tableFill1 = new TableFill("register_date",FieldFill.INSERT);
// TableFill tableFill2 = new TableFill("update_time",FieldFill.INSERT_UPDATE);
// list.add(tableFill1);
// list.add(tableFill2);
// strategy.setTableFillList(list);
// ================== 自定义模板配置: 默认配置位置 mybatis-plus/src/main/resources/templates ======================
// 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
TemplateConfig tc = new TemplateConfig();
tc.setXml("/templates/mybatisplus/mapper.xml") // 设置生成xml的模板
.setEntity("/templates/mybatisplus/entity.java") // 设置生成entity的模板
.setMapper("/templates/mybatisplus/mapper.java") // 设置生成mapper的模板
.setController("/templates/mybatisplus/controller.java") // 设置生成controller的模板
.setService("/templates/mybatisplus/service.java") // 设置生成service的模板
.setServiceImpl("/templates/mybatisplus/serviceImpl.java") // 设置生成serviceImpl的模板
;
// ==================== 生成配置 ===================
AutoGenerator mpg = new AutoGenerator();
mpg.setCfg(cfg)
.setTemplate(tc)
.setGlobalConfig(gc)
.setDataSource(dsc)
.setPackageInfo(pc)
.setStrategy(strategy)
.setTemplateEngine(new FreemarkerTemplateEngine()); // 选择 freemarker引擎,注意 pom 依赖必须有!
mpg.execute();
System.out.println("MyBatis Plus Code Generator Finished!!");
}
}
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.FileOutConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
/**
* @Date 2019/10/31
* @description mybatisplus基础代码生成工具
* 根据实际情况更改TABLE_NAME、ENTITY_NAME
*/
public class CodeGeneratorMyBatis1 {
private static final String dburl = "jdbc:mysql://localhost:3306/wjdit_ecosystem_db_v1.0.0?serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&characterEncoding=utf8";
private static final String userName = "root";
private static final String password = "123456";
private static final String TABLE_NAMES ="t_analysis_problem_cross_day";
private static String ENTITY_NAME = null;
private static final String AUTHOR ="fengyi";
private static final boolean OVERITE_FILE = true; //是否覆盖源文件
private static final String PARENT_PACAGE = "net.wanji";
private static final String MODULE_NAME="opt";
//表头标识
private static final String TABLE_PREFIX="t_";
static String subModulePackage = ".judgeanalysis";
private static String toEntityName(String tableName) {
if (tableName.startsWith(TABLE_PREFIX)) {
tableName = tableName.substring(TABLE_PREFIX.length());
}
String[] sps = tableName.split("_");
StringBuilder stringBuilder = new StringBuilder();
for (String str : sps) {
String upStr = str.substring(0,1).toUpperCase()+str.substring(1);
stringBuilder.append(upStr);
}
return stringBuilder.toString();
}
public static void main(String[] args) {
String[] sps = TABLE_NAMES.split(",");
for (String tableName : sps) {
codeGen(tableName);
}
}
public static void codeGen(String tableName) {
if (ENTITY_NAME==null)
ENTITY_NAME = toEntityName(tableName);
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
// String projectPath = "./holo-decision-big-screen";
String projectPath = "./wj-gernerator/output";
gc.setOutputDir(projectPath+"/src/main/java");
gc.setAuthor(AUTHOR);
gc.setOpen(false);
gc.setSwagger2(true); //实体属性 Swagger2 注解
gc.setEnableCache(false);
gc.setEntityName(ENTITY_NAME);
gc.setControllerName(ENTITY_NAME+"Controller");
gc.setServiceName(ENTITY_NAME+"Service");
gc.setServiceImplName(ENTITY_NAME+"ServiceImpl");
gc.setMapperName(ENTITY_NAME+"Mapper");
gc.setXmlName(ENTITY_NAME+"Mapper");
gc.setBaseResultMap(true);
gc.setBaseColumnList(true);
gc.setIdType(IdType.NONE);
gc.setDateType(DateType.ONLY_DATE);
gc.setFileOverride(OVERITE_FILE);
mpg.setGlobalConfig(gc);
// 数据源配置mysql
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl(dburl);
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUsername(userName);
dsc.setPassword(password);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(MODULE_NAME);
pc.setParent(PARENT_PACAGE);
pc.setController("controllerv2"+subModulePackage);
pc.setEntity("entity"+subModulePackage);
pc.setMapper("dao.mapper"+subModulePackage);
pc.setService("service2"+subModulePackage);
pc.setServiceImpl("service2"+subModulePackage+".impl");
mpg.setPackageInfo(pc);
// ================== 自定义配置 =================
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
List<FileOutConfig> focList = new ArrayList<>();
// 调整 xml 生成目录演示
focList.add(new FileOutConfig("/templates/mybatis1/mapper.xml.ftl") {
@Override
public String outputFile(TableInfo tableInfo) {
// 自定义输入文件名称
return projectPath + "/src/main/resources/mapper/"+subModulePackage.substring(1)+"/"
+ tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
//MapperXML配置如果模板引擎是 freemarker
String templatePath = "templates/mybatis1/mapper.xml.ftl";
String beanTemplatePath ="templates/mybatis1/entity.java.ftl";
mpg.setCfg(cfg);
// 配置模板
TemplateConfig templateConfig = new TemplateConfig();
// 配置自定义输出模板
//指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
templateConfig.setEntity("templates/mybatis1/entity.java");
templateConfig.setXml("templates/mybatis1/mapper.xml");
templateConfig.setMapper("templates/mybatis1/mapper.java");
templateConfig.setService("templates/mybatis1/provider.java");
templateConfig.setServiceImpl("templates/mybatis1/providerImpl.java");
templateConfig.setController("templates/mybatis1/restServer.java");
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// strategy.setSuperEntityClass("com.baomidou.ant.service.BaseEntity"); //entity父级
strategy.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
// 公共父类
// strategy.setSuperControllerClass("com.baomidou.ant.service.BaseController");
// 写于父类中的公共字段
// strategy.setSuperEntityColumns("id");
strategy.setInclude(tableName); //表名,多个英文逗号分割").split(",")
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix(TABLE_PREFIX);
strategy.setSuperMapperClass("BaseInterfaceMapper");
strategy.setSuperServiceClass(null);
strategy.setSuperEntityClass("TrackableEntity");
strategy.setSuperServiceImplClass(null);
strategy.setFieldPrefix("t_","s_","dt_","i_","bs_");
strategy.setTablePrefix("t_");
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
System.out.println("MyBatis Plus Code Generator Finished!!");
}
}
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.TemplateConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import org.apache.ibatis.annotations.Mapper;
import java.util.ArrayList;
import java.util.Collections;
public class MybatisPlusAutoGeneratorUtil {
public static void main(String[] args) {
String projectPath = System.getProperty("user.dir") + "\\signal-optimize-service";
String path = projectPath + "\\src\\main\\java";
String url = "jdbc:mysql://37.12.182.29:3306/wjdit_ecosystem_db_v1.0.0?serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&characterEncoding=utf8";
String username = "root"; //用户名
String password = "Wanji300552"; // 密码
ArrayList<String> tables = new ArrayList<>(); // 需要生成代码的表有哪些
tables.add("t_analysis_problem_green_day");
String subModulePackage = ".judgeanalysis";
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> {
builder.author("fengyi") // 设置author
.enableSwagger() // 添加Swagger注解
.fileOverride()
.outputDir(path); //设置路径
})
.packageConfig(builder -> {
builder.parent("net.wanji.opt") // 包路径
.entity("entity"+ subModulePackage) // 实体包名
.service("servicev2" + subModulePackage) // service包名
.serviceImpl("servicev2" + subModulePackage + ".impl") // service实现类包名
.mapper("dao.mapper" + subModulePackage) // dao层包名
.controller("controllerv2" + subModulePackage) // controller包名
.pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "\\src\\main\\resources\\mapper\\" + subModulePackage.substring(1))); // xml映射文件包名
})
.strategyConfig(builder -> {
builder.addInclude(tables)
.addTablePrefix("t_") // 表前缀
.serviceBuilder() // 构建service
.formatServiceFileName("%sService") // service命名规则
.formatServiceImplFileName("%sServiceImpl") //service实现类命名规则
.controllerBuilder() // 构建controller
.formatFileName("%sController") // controller命名规则
.enableRestStyle() //驼峰命名
.entityBuilder() //构建实体类
.enableChainModel()
.idType(IdType.AUTO) //id类型
.enableLombok() //lombok
.naming(NamingStrategy.underline_to_camel) // 数据库下划线转为驼峰式命名
.logicDeleteColumnName("deleted") // 逻辑删除字段
.versionColumnName("version") // 乐观锁
.addTableFills(new Column("gmt_create", FieldFill.INSERT)) // 新增时填充
.addTableFills(new Column("gmt_modified", FieldFill.INSERT_UPDATE)) // 新增或修改时填充
.enableTableFieldAnnotation()
.mapperBuilder() // 构建dao层
.enableBaseResultMap() // 通用map
.superClass(BaseMapper.class) // 继承 BaseMapper
.formatMapperFileName("%sMapper") // dao层命名规则
.formatXmlFileName("%sMapper") // xml映射文件命名规则
.mapperAnnotation(Mapper.class); // dao层添加@Mapper注解
})
//模板配置
.templateConfig((scanner, builder) -> {
// 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
builder.entity("/templates/mybatisplus/entity.java"); // 设置生成entity的模板
builder.mapper("/templates/mybatisplus/mapper.java"); // 设置生成controller的模板
builder.service("/templates/mybatisplus/service.java"); // 设置生成service的模板
builder.serviceImpl("/templates/mybatisplus/serviceImpl.java"); // 设置生成serviceImpl的模板
builder.xml("/templates/mybatisplus/mapper.xml");
//配置不需要生成的文件
// builder.disable(TemplateType.CONTROLLER,TemplateType.SERVICE,TemplateType.SERVICE_IMPL);
})
//注入配置
// .injectionConfig((scanner,builder) ->{})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker模板引擎
.execute();
}
}
//import com.baomidou.mybatisplus.annotation.FieldFill;
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.core.mapper.BaseMapper;
//import com.baomidou.mybatisplus.generator.FastAutoGenerator;
//import com.baomidou.mybatisplus.generator.config.OutputFile;
//import com.baomidou.mybatisplus.generator.config.TemplateConfig;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
//import com.baomidou.mybatisplus.generator.fill.Column;
//import org.apache.ibatis.annotations.Mapper;
//
//import java.util.ArrayList;
//import java.util.Collections;
//
//public class MybatisPlusAutoGeneratorUtil {
//
// public static void main(String[] args) {
//
//
// String projectPath = System.getProperty("user.dir") + "\\signal-optimize-service";
//
// String path = projectPath + "\\src\\main\\java";
// String url = "jdbc:mysql://37.12.182.29:3306/wjdit_ecosystem_db_v1.0.0?serverTimezone=Asia/Shanghai&useUnicode=true&useSSL=false&characterEncoding=utf8";
//
// String username = "root"; //用户名
// String password = "Wanji300552"; // 密码
// ArrayList<String> tables = new ArrayList<>(); // 需要生成代码的表有哪些
// tables.add("t_analysis_problem_green_day");
//
// String subModulePackage = ".judgeanalysis";
//
// FastAutoGenerator.create(url, username, password)
// .globalConfig(builder -> {
// builder.author("fengyi") // 设置author
// .enableSwagger() // 添加Swagger注解
// .fileOverride()
// .outputDir(path); //设置路径
// })
// .packageConfig(builder -> {
// builder.parent("net.wanji.opt") // 包路径
// .entity("entity"+ subModulePackage) // 实体包名
// .service("servicev2" + subModulePackage) // service包名
// .serviceImpl("servicev2" + subModulePackage + ".impl") // service实现类包名
// .mapper("dao.mapper" + subModulePackage) // dao层包名
// .controller("controllerv2" + subModulePackage) // controller包名
// .pathInfo(Collections.singletonMap(OutputFile.xml, projectPath + "\\src\\main\\resources\\mapper\\" + subModulePackage.substring(1))); // xml映射文件包名
// })
// .strategyConfig(builder -> {
// builder.addInclude(tables)
// .addTablePrefix("t_") // 表前缀
//
// .serviceBuilder() // 构建service
// .formatServiceFileName("%sService") // service命名规则
// .formatServiceImplFileName("%sServiceImpl") //service实现类命名规则
//
// .controllerBuilder() // 构建controller
// .formatFileName("%sController") // controller命名规则
// .enableRestStyle() //驼峰命名
//
// .entityBuilder() //构建实体类
// .enableChainModel()
// .idType(IdType.AUTO) //id类型
// .enableLombok() //lombok
// .naming(NamingStrategy.underline_to_camel) // 数据库下划线转为驼峰式命名
// .logicDeleteColumnName("deleted") // 逻辑删除字段
// .versionColumnName("version") // 乐观锁
// .addTableFills(new Column("gmt_create", FieldFill.INSERT)) // 新增时填充
// .addTableFills(new Column("gmt_modified", FieldFill.INSERT_UPDATE)) // 新增或修改时填充
// .enableTableFieldAnnotation()
//
// .mapperBuilder() // 构建dao层
// .enableBaseResultMap() // 通用map
// .superClass(BaseMapper.class) // 继承 BaseMapper
// .formatMapperFileName("%sMapper") // dao层命名规则
// .formatXmlFileName("%sMapper") // xml映射文件命名规则
// .mapperAnnotation(Mapper.class); // dao层添加@Mapper注解
// })
// //模板配置
// .templateConfig((scanner, builder) -> {
//// 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
//
// builder.entity("/templates/mybatisplus/entity.java"); // 设置生成entity的模板
// builder.mapper("/templates/mybatisplus/mapper.java"); // 设置生成controller的模板
// builder.service("/templates/mybatisplus/service.java"); // 设置生成service的模板
// builder.serviceImpl("/templates/mybatisplus/serviceImpl.java"); // 设置生成serviceImpl的模板
// builder.xml("/templates/mybatisplus/mapper.xml");
// builder.xml("/templates/mybatisplus/controller.java");
// //配置不需要生成的文件
//// builder.disable(TemplateType.CONTROLLER,TemplateType.SERVICE,TemplateType.SERVICE_IMPL);
// })
// //注入配置
//// .injectionConfig((scanner,builder) ->{})
// .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker模板引擎
// .execute();
// }
//}
//
package com.wanji.${package.ModuleName}.entity;
package net.wanji.${package.ModuleName}.entity;
<#if swagger2>
import io.swagger.annotations.ApiModel;
......@@ -9,7 +9,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
</#if>
import com.wanji.common.framework.domain.TrackableEntity;
import net.wanji.common.framework.domain.TrackableEntity;
import java.util.Date;
import java.math.BigDecimal;
......
package ${package.Mapper};
import com.wanji.${package.ModuleName}.entity.${entity};
import net.wanji.${package.ModuleName}.entity.${entity};
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.wanji.common.framework.mapper.BaseInterfaceMapper;
import net.wanji.common.framework.mapper.BaseInterfaceMapper;
/**
* <p>
......
......@@ -4,7 +4,7 @@
<#if baseResultMap>
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.wanji.${package.ModuleName}.entity.${entity}">
<resultMap id="BaseResultMap" type="net.wanji.${package.ModuleName}.entity.${entity}">
<#list table.fields as field>
<#if field.keyFlag><#--生成主键排在第一位-->
<id column="${field.name}" property="${field.propertyName}" />
......@@ -38,7 +38,7 @@
</#if>
<!--新增操作 -->
<insert id="save" parameterType="com.wanji.${package.ModuleName}.entity.${entity}">
<insert id="save" parameterType="net.wanji.${package.ModuleName}.entity.${entity}">
insert into
<include refid="Table_Name"/>
(<include refid="Base_Column_List"/>)
......@@ -108,7 +108,7 @@
</select>
<!--更新-->
<update id="update" parameterType="com.wanji.${package.ModuleName}.entity.${entity}">
<update id="update" parameterType="net.wanji.${package.ModuleName}.entity.${entity}">
update
<include refid="Table_Name"/>
<include refid="sql_update"/>
......
package com.wanji.${package.ModuleName}.service;
package net.wanji.${package.ModuleName}.service;
import com.wanji.${package.ModuleName}.entity.${entity};
import com.wanji.common.framework.dubbointerface.BaseDubboInterface;
import net.wanji.${package.ModuleName}.entity.${entity};
import net.wanji.common.framework.dubbointerface.BaseDubboInterface;
/**
......
package ${package.ServiceImpl};
import com.wanji.common.framework.dubbointerface.impl.BaseDubboInterfaceImpl;
import com.wanji.common.framework.exception.DubboProviderException;
import com.wanji.common.framework.mapper.BaseInterfaceMapper;
import com.wanji.common.framework.rest.JsonViewObject;
import com.wanji.${package.ModuleName}.entity.${entity};
import com.wanji.${package.ModuleName}.service.${entity}Provider;
import net.wanji.common.framework.dubbointerface.impl.BaseDubboInterfaceImpl;
import net.wanji.common.framework.exception.DubboProviderException;
import net.wanji.common.framework.mapper.BaseInterfaceMapper;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.${package.ModuleName}.entity.${entity};
import net.wanji.${package.ModuleName}.service.${entity}Provider;
import ${package.Mapper}.${table.mapperName};
import lombok.extern.slf4j.Slf4j;
......
package ${package.Controller};
import com.wanji.common.framework.Constants;
import com.wanji.common.framework.dubbointerface.BaseDubboInterface;
import com.wanji.common.framework.rest.JsonViewObject;
import com.wanji.common.framework.rest.AbstractRestServer;
import com.wanji.common.framework.dubbointerface.BaseDubboInterface;
import com.wanji.common.framework.exception.DubboProviderException;
import com.wanji.common.framework.i18n.I18nResourceBundle;
import com.wanji.common.framework.rest.AbstractRestServer;
import com.wanji.common.framework.rest.impl.AbstractRestServerImpl;
import com.wanji.${package.ModuleName}.service.${entity}Provider;
import com.wanji.${package.ModuleName}.entity.${entity};
import com.wanji.common.framework.rest.Page;
import net.wanji.common.framework.Constants;
import net.wanji.common.framework.dubbointerface.BaseDubboInterface;
import net.wanji.common.framework.rest.JsonViewObject;
import net.wanji.common.framework.rest.AbstractRestServer;
import net.wanji.common.framework.dubbointerface.BaseDubboInterface;
import net.wanji.common.framework.exception.DubboProviderException;
import net.wanji.common.framework.i18n.I18nResourceBundle;
import net.wanji.common.framework.rest.AbstractRestServer;
import net.wanji.common.framework.rest.impl.AbstractRestServerImpl;
import net.wanji.${package.ModuleName}.service.${entity}Provider;
import net.wanji.${package.ModuleName}.entity.${entity};
import net.wanji.common.framework.rest.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......
......@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import net.wanji.opt.api.ResultGenerator;
<#if restControllerStyle>
<#else>
......@@ -31,20 +32,11 @@ import java.util.List;
* @since ${date}
*/
@Api(tags = "${table.comment!}")
<#if restControllerStyle>
@RestController
<#else>
@Controller
</#if>
@RequestMapping("<#if package.ModuleName??>/${package.ModuleName}</#if>/<#if controllerMappingHyphenStyle??>${controllerMappingHyphen}<#else>${table.entityPath}</#if>")
<#if kotlin>
class ${table.controllerName}<#if superControllerClass??> : ${superControllerClass}()</#if>
<#else>
<#if superControllerClass??>
public class ${table.controllerName} extends ${superControllerClass} {
<#else>
public class ${table.controllerName} {
</#if>
@Autowired
private ${table.serviceName} ${table.serviceName?uncap_first};
......@@ -91,5 +83,4 @@ public class ${table.controllerName} {
return ResultGenerator.genSuccessResult();
}
}
</#if>
\ No newline at end of file
}
\ No newline at end of file
package com.example.gernerator;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class GerneratorApplicationTests {
@Test
void contextLoads() {
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment