init
This commit is contained in:
16
README.md
16
README.md
@@ -1,3 +1,17 @@
|
|||||||
# code-generator
|
# code-generator
|
||||||
|
|
||||||
基于mybatis-plus-generator-ui,用于生成项目的java基础代码,包括Service、Entity、Mapper、Controller等
|
基于mybatis-plus-generator-ui,用于生成项目的java基础代码,包括Service、Entity、Mapper、Controller等
|
||||||
|
|
||||||
|
# 用法
|
||||||
|
|
||||||
|
1、在`main/java`下将entity基类所在包建好,将基类拷贝进去
|
||||||
|
|
||||||
|
2、将`test/java/GeberatorUIServer.java`中数据库相关变量(`dbName`、`url`、`username`、`password`)改为实际数据库的配置
|
||||||
|
|
||||||
|
3、将`test/java/GeberatorUIServer.java`中生成类所在包的变量`parent`改为实际的包名,生成的java类都在这个包下
|
||||||
|
|
||||||
|
4、将`test/java/GeberatorUIServer.java`中表名前缀`tablePrefix`改为实际表前缀,生成器如果配置了去除前缀,则表中以这个前缀开头的表建立java实体类时,类名不会包含此前缀
|
||||||
|
|
||||||
|
5、执行`test/java/GeberatorUIServer.java`的main方法
|
||||||
|
|
||||||
|
6、浏览器访问[http://localhost:8068/](http://localhost:8068/)进行配置与代码生成
|
||||||
70
pom.xml
Normal file
70
pom.xml
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<?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>
|
||||||
|
<groupId>com.optima.cemis</groupId>
|
||||||
|
<artifactId>generator</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<name>generator</name>
|
||||||
|
<description>code-generator</description>
|
||||||
|
<properties>
|
||||||
|
<java.version>1.8</java.version>
|
||||||
|
<spring-boot.version>2.7.18</spring-boot.version>
|
||||||
|
<mybatis-plus-generator-ui.version>2.0.5</mybatis-plus-generator-ui.version>
|
||||||
|
<mysql-connector-java.version>8.0.33</mysql-connector-java.version>
|
||||||
|
<lombok.version>1.18.30</lombok.version>
|
||||||
|
<mybatis-plus.version>3.5.5</mybatis-plus.version>
|
||||||
|
<jackson.version>2.16.1</jackson.version>
|
||||||
|
<springfox-swagger-ui.version>2.10.5</springfox-swagger-ui.version>
|
||||||
|
</properties>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.davidfantasy</groupId>
|
||||||
|
<artifactId>mybatis-plus-generator-ui</artifactId>
|
||||||
|
<version>${mybatis-plus-generator-ui.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<version>${mysql-connector-java.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus</artifactId>
|
||||||
|
<version>${mybatis-plus.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-core</artifactId>
|
||||||
|
<version>${jackson.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-annotations</artifactId>
|
||||||
|
<version>${jackson.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
<version>${jackson.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.springfox</groupId>
|
||||||
|
<artifactId>springfox-swagger-ui</artifactId>
|
||||||
|
<version>${springfox-swagger-ui.version}</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
||||||
26
src/main/java/com/optima/cemis/base/entity/BaseEntity.java
Normal file
26
src/main/java/com/optima/cemis/base/entity/BaseEntity.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package com.optima.cemis.base.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.extension.activerecord.Model;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仅仅是一个基类,各个项目中可能不同,此项目中,只是用于避免因类不存在而报错
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@Data
|
||||||
|
public class BaseEntity<T> extends Model<BaseEntity<T>> {
|
||||||
|
|
||||||
|
@TableId("id")
|
||||||
|
private Serializable id;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Serializable pkVal() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
||||||
55
src/test/java/GeberatorUIServer.java
Normal file
55
src/test/java/GeberatorUIServer.java
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
import com.baomidou.mybatisplus.generator.config.rules.DateType;
|
||||||
|
import com.github.davidfantasy.mybatisplus.generatorui.GeneratorConfig;
|
||||||
|
import com.github.davidfantasy.mybatisplus.generatorui.MybatisPlusToolsApplication;
|
||||||
|
import com.github.davidfantasy.mybatisplus.generatorui.mbp.NameConverter;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class GeberatorUIServer {
|
||||||
|
/**
|
||||||
|
* 数据库相关配置
|
||||||
|
*/
|
||||||
|
private static final String dbName = "cemis-examine";
|
||||||
|
private static final String url = "jdbc:mysql://localhost:3306/" + dbName + "?useUnicode=true&useSSL=false&characterEncoding=utf8";
|
||||||
|
private static final String username = "root";
|
||||||
|
private static final String password = "root";
|
||||||
|
private static final String driverClassName = "com.mysql.cj.jdbc.Driver";
|
||||||
|
|
||||||
|
//项目父包名,service、controller等包会建在这个包下
|
||||||
|
private static final String parent = "com.optima.cemis";
|
||||||
|
//表名前缀,生成表时会删除
|
||||||
|
private static final String tablePrefix = "exam_";
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
GeneratorConfig config = GeneratorConfig.builder()
|
||||||
|
.jdbcUrl(url)
|
||||||
|
.userName(username)
|
||||||
|
.password(password)
|
||||||
|
.driverClassName(driverClassName)
|
||||||
|
.dateType(DateType.TIME_PACK)
|
||||||
|
//数据库schema,MSSQL,PGSQL,ORACLE,DB2类型的数据库需要指定
|
||||||
|
//.schemaName("myBusiness")
|
||||||
|
//数据库表前缀,生成entity名称时会去掉(v2.0.3新增)
|
||||||
|
.tablePrefix(tablePrefix)
|
||||||
|
.nameConverter(new NameConverter() {
|
||||||
|
/**
|
||||||
|
* 自定义Service类文件的名称规则
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String serviceNameConvert(String entityName) {
|
||||||
|
return entityName + "Service";
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.templateVaribleInjecter(tableInfo -> {
|
||||||
|
Map<String, Object> map = new HashMap<>();
|
||||||
|
map.put("mapperAnnotationClass", org.apache.ibatis.annotations.Mapper.class);
|
||||||
|
return map;
|
||||||
|
})
|
||||||
|
//所有生成的java文件的父包名,后续也可单独在界面上设置
|
||||||
|
.basePackage(parent)
|
||||||
|
.port(8068)
|
||||||
|
.build();
|
||||||
|
MybatisPlusToolsApplication.run(config);
|
||||||
|
}
|
||||||
|
}
|
||||||
3
src/test/resources/application.yml
Normal file
3
src/test/resources/application.yml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
spring:
|
||||||
|
mvc:
|
||||||
|
static-path-pattern: /**
|
||||||
90
src/test/resources/codetpls/controller.java.btl
Normal file
90
src/test/resources/codetpls/controller.java.btl
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
<% var entityInstanceName = @cn.hutool.core.util.StrUtil.lowerFirst(table.entityName); %>
|
||||||
|
<% var serviceInstanceName = @cn.hutool.core.util.StrUtil.lowerFirst(table.serviceName); %>
|
||||||
|
package ${package.Controller};
|
||||||
|
|
||||||
|
import cn.cdhncy.cemis.common.core.util.R;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
<% if(!restControllerStyle){ %>
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
<% } %>
|
||||||
|
<% if(isNotEmpty(superControllerClassPackage)){ %>
|
||||||
|
import ${superControllerClassPackage};
|
||||||
|
<% } %>
|
||||||
|
<% if(isNotEmpty(controllerMethods.list)){ %>
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
<% } %>
|
||||||
|
<% if(isNotEmpty(controllerMethods.hasMethod)){ %>
|
||||||
|
import ${package.Service}.${table.serviceName};
|
||||||
|
import ${package.Entity}.${table.entityName};
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
<% } %>
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* ${table.comment!} 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ${author}
|
||||||
|
* @since ${date}
|
||||||
|
*/
|
||||||
|
<% if(restControllerStyle){ %>
|
||||||
|
@RestController
|
||||||
|
<% }else{ %>
|
||||||
|
@Controller
|
||||||
|
<% } %>
|
||||||
|
@RequestMapping("<% if(isNotEmpty(package.ModuleName)){ %>/${package.ModuleName}<% } %>/<% if(isNotEmpty(controllerMappingHyphenStyle)){ %>${controllerMappingHyphen}<% }else{ %>${table.entityPath}<% } %>")
|
||||||
|
<% if(kotlin){ %>
|
||||||
|
class ${table.controllerName}<% if(isNotEmpty(superControllerClass)){ %> : ${superControllerClass}()<% } %>
|
||||||
|
<% }else{ %>
|
||||||
|
<% if(isNotEmpty(superControllerClass)){ %>
|
||||||
|
public class ${table.controllerName} extends ${superControllerClass} {
|
||||||
|
<% }else{ %>
|
||||||
|
public class ${table.controllerName} {
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<% if(isNotEmpty(controllerMethods.hasMethod)){ %>
|
||||||
|
@Resource
|
||||||
|
private ${table.serviceName} ${serviceInstanceName};
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<% if(isNotEmpty(controllerMethods.list)){ %>
|
||||||
|
@GetMapping(value = "/list")
|
||||||
|
public R<Page<${table.entityName}>> list(Page<${table.entityName}> page) {
|
||||||
|
return R.ok(${serviceInstanceName}.page(page), "查询成功");
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<% if(isNotEmpty(controllerMethods.getById)){ %>
|
||||||
|
@GetMapping(value = "/{id}")
|
||||||
|
public R<${table.entityName}> getById(@PathVariable("id") Serializable id) {
|
||||||
|
return R.ok(${serviceInstanceName}.getById(id), "查询成功");
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<% if(isNotEmpty(controllerMethods.create)){ %>
|
||||||
|
@PostMapping(value = "/create")
|
||||||
|
public R<${table.entityName}> create(${table.entityName} ${entityInstanceName}) {
|
||||||
|
${serviceInstanceName}.save(${entityInstanceName});
|
||||||
|
return R.ok(${entityInstanceName}, "保存成功");
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<% if(isNotEmpty(controllerMethods.delete)){ %>
|
||||||
|
@GetMapping(value = "/delete/{id}")
|
||||||
|
public R<Serializable> delete(@PathVariable("id") Serializable id) {
|
||||||
|
${serviceInstanceName}.removeById(id);
|
||||||
|
return R.ok(id, "删除成功");
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<% if(isNotEmpty(controllerMethods.update)){ %>
|
||||||
|
@PostMapping(value = "/update")
|
||||||
|
public R<${table.entityName}> update(${table.entityName} ${entityInstanceName}) {
|
||||||
|
${serviceInstanceName}.updateById(${entityInstanceName});
|
||||||
|
return R.ok(${serviceInstanceName}.getById(${entityInstanceName}.getId()), "更新成功");
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
53
src/test/resources/codetpls/dto.btl
Normal file
53
src/test/resources/codetpls/dto.btl
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
package ${config.pkg};
|
||||||
|
<% for(pkg in config.importPackages){ %>
|
||||||
|
import ${pkg};
|
||||||
|
<% } %>
|
||||||
|
<% if(config.enableLombok){ %>
|
||||||
|
import lombok.Data;
|
||||||
|
<% } %>
|
||||||
|
/**
|
||||||
|
* ${config.comment!}
|
||||||
|
*
|
||||||
|
* @author ${config.author}
|
||||||
|
* @since ${config.createDate}
|
||||||
|
*/
|
||||||
|
<% if(config.enableLombok){ %>
|
||||||
|
@Data
|
||||||
|
<% } %>
|
||||||
|
public class ${config.dtoName} {
|
||||||
|
|
||||||
|
<% /** -----------BEGIN 字段循环遍历----------- **/ %>
|
||||||
|
<% for(field in config.fields){ %>
|
||||||
|
<%/*字段定义*/%>
|
||||||
|
private ${field.shortJavaType} ${field.propertyName};
|
||||||
|
|
||||||
|
<% } %>
|
||||||
|
<% /** -----------END 字段循环遍历----------- **/ %>
|
||||||
|
<% if(!config.enableLombok){ %>
|
||||||
|
<% for(field in config.fields){ %>
|
||||||
|
public ${field.shortJavaType} ${field.getMethodName}() {
|
||||||
|
return ${field.propertyName};
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ${field.setMethodName}(${field.shortJavaType} ${field.propertyName}) {
|
||||||
|
this.${field.propertyName} = ${field.propertyName};
|
||||||
|
}
|
||||||
|
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
<% if(!config.enableLombok){ %>
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "${config.dtoName}{" +
|
||||||
|
<% for(field in config.fields){ %>
|
||||||
|
<% if(fieldLP.index==0){ %>
|
||||||
|
"${field.propertyName}=" + ${field.propertyName} +
|
||||||
|
<% }else{ %>
|
||||||
|
", ${field.propertyName}=" + ${field.propertyName} +
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
}
|
||||||
173
src/test/resources/codetpls/entity.java.btl
Normal file
173
src/test/resources/codetpls/entity.java.btl
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
package ${package.Entity};
|
||||||
|
|
||||||
|
<% for(pkg in table.importPackages){ %>
|
||||||
|
import ${pkg};
|
||||||
|
<% } %>
|
||||||
|
<% if(springdoc){ %>
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
<% }else if(swagger){ %>
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
<% } %>
|
||||||
|
<% if(entityLombokModel){ %>
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
<% if(chainModel){ %>
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* ${table.comment!}
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ${author}
|
||||||
|
* @since ${date}
|
||||||
|
*/
|
||||||
|
<% if(entityLombokModel){ %>
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
<% if(chainModel){ %>
|
||||||
|
@Accessors(chain = true)
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
<% if(table.convert){ %>
|
||||||
|
@TableName("${schemaName}${table.name}")
|
||||||
|
<% } %>
|
||||||
|
<% if(springdoc){ %>
|
||||||
|
@Schema(name = "${entity}", description = "$!{table.comment}")
|
||||||
|
<% }else if(swagger){ %>
|
||||||
|
@ApiModel(value = "${entity}对象", description = "${table.comment!''}")
|
||||||
|
<% } %>
|
||||||
|
<% if(isNotEmpty(superEntityClass)){ %>
|
||||||
|
public class ${entity} extends ${superEntityClass}<% if(activeRecord){ %><${entity}><%}%>{
|
||||||
|
<% }else if(activeRecord){ %>
|
||||||
|
public class ${entity} extends Model<${entity}> {
|
||||||
|
<% }else if(entitySerialVersionUID){ %>
|
||||||
|
public class ${entity} implements Serializable {
|
||||||
|
<% }else{ %>
|
||||||
|
public class ${entity} {
|
||||||
|
<% } %>
|
||||||
|
<% if(entitySerialVersionUID){ %>
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
<% } %>
|
||||||
|
<% var keyPropertyName; %>
|
||||||
|
<% /** -----------BEGIN 字段循环遍历----------- **/ %>
|
||||||
|
<% for(field in table.fields){ %>
|
||||||
|
<%
|
||||||
|
if(field.keyFlag){
|
||||||
|
keyPropertyName = field.propertyName;
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
<% if(isNotEmpty(field.comment)){ %>
|
||||||
|
|
||||||
|
<% if(springdoc){ %>
|
||||||
|
@Schema(description = "${field.comment}")
|
||||||
|
<% }else if(swagger){ %>
|
||||||
|
@ApiModelProperty(value = "${field.comment}")
|
||||||
|
<% }else{ %>
|
||||||
|
/**
|
||||||
|
* ${field.comment}
|
||||||
|
*/
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
<% if(field.keyFlag){ %>
|
||||||
|
<%
|
||||||
|
/*主键*/
|
||||||
|
%>
|
||||||
|
<% if(field.keyIdentityFlag){ %>
|
||||||
|
@TableId(value = "${field.annotationColumnName}", type = IdType.AUTO)
|
||||||
|
<% }else if(isNotEmpty(idType)){ %>
|
||||||
|
@TableId(value = "${field.annotationColumnName}", type = IdType.${idType})
|
||||||
|
<% }else if(field.convert){ %>
|
||||||
|
@TableId("${field.annotationColumnName}")
|
||||||
|
<% } %>
|
||||||
|
<%
|
||||||
|
/*普通字段*/
|
||||||
|
%>
|
||||||
|
<% }else if(isNotEmpty(field.fill)){ %>
|
||||||
|
<% if(field.convert){ %>
|
||||||
|
@TableField(value = "${field.annotationColumnName}", fill = FieldFill.${field.fill})
|
||||||
|
<% }else{ %>
|
||||||
|
@TableField(fill = FieldFill.${field.fill})
|
||||||
|
<% } %>
|
||||||
|
<% }else if(field.convert){ %>
|
||||||
|
@TableField("${field.annotationColumnName}")
|
||||||
|
<% } %>
|
||||||
|
<%
|
||||||
|
/*乐观锁注解*/
|
||||||
|
%>
|
||||||
|
<% if(field.versionField){ %>
|
||||||
|
@Version
|
||||||
|
<% } %>
|
||||||
|
<%
|
||||||
|
/*逻辑删除注解*/
|
||||||
|
%>
|
||||||
|
<% if(field.logicDeleteField){ %>
|
||||||
|
@TableLogic
|
||||||
|
<% } %>
|
||||||
|
private ${field.propertyType} ${field.propertyName};
|
||||||
|
<% } %>
|
||||||
|
<% /** -----------END 字段循环遍历----------- **/ %>
|
||||||
|
<% if(!entityLombokModel){ %>
|
||||||
|
<% for(field in table.fields){ %>
|
||||||
|
<%
|
||||||
|
var getprefix ='';
|
||||||
|
if(field.propertyType=='boolean'){
|
||||||
|
getprefix='is';
|
||||||
|
}else{
|
||||||
|
getprefix='get';
|
||||||
|
}
|
||||||
|
%>
|
||||||
|
|
||||||
|
public ${field.propertyType} ${getprefix}${field.capitalName}() {
|
||||||
|
return ${field.propertyName};
|
||||||
|
}
|
||||||
|
|
||||||
|
<% if(chainModel){ %>
|
||||||
|
public ${entity} set${field.capitalName}(${field.propertyType} ${field.propertyName}) {
|
||||||
|
<% }else{ %>
|
||||||
|
public void set${field.capitalName}(${field.propertyType} ${field.propertyName}) {
|
||||||
|
<% } %>
|
||||||
|
this.${field.propertyName} = ${field.propertyName};
|
||||||
|
<% if(chainModel){ %>
|
||||||
|
return this;
|
||||||
|
<% } %>
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
<% if(entityColumnConstant){ %>
|
||||||
|
<% for(field in table.fields){ %>
|
||||||
|
|
||||||
|
public static final String ${strutil.toUpperCase(field.name)} = "${field.name}";
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
<% if(activeRecord){ %>
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Serializable pkVal() {
|
||||||
|
<% if(isNotEmpty(keyPropertyName)){ %>
|
||||||
|
return this.${keyPropertyName};
|
||||||
|
<% }else{ %>
|
||||||
|
return super.pkVal();
|
||||||
|
<% } %>
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
<% if(!entityLombokModel){ %>
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "${entity}{" +
|
||||||
|
<% for(field in table.fields){ %>
|
||||||
|
<% if(fieldLP.index==0){ %>
|
||||||
|
"${field.propertyName} = " + ${field.propertyName} +
|
||||||
|
<% }else{ %>
|
||||||
|
", ${field.propertyName} = " + ${field.propertyName} +
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
|
}
|
||||||
26
src/test/resources/codetpls/mapper.java.btl
Normal file
26
src/test/resources/codetpls/mapper.java.btl
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package ${package.Mapper};
|
||||||
|
|
||||||
|
import ${package.Entity}.${entity};
|
||||||
|
import ${superMapperClassPackage};
|
||||||
|
<% if(mapperAnnotationClass!=null){ %>
|
||||||
|
import ${mapperAnnotationClass.name};
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* ${table.comment!} Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ${author}
|
||||||
|
* @since ${date}
|
||||||
|
*/
|
||||||
|
<% if(mapperAnnotationClass!=null){ %>
|
||||||
|
@${mapperAnnotationClass.simpleName}
|
||||||
|
<% } %>
|
||||||
|
<% if(kotlin){ %>
|
||||||
|
interface ${table.mapperName} : ${superMapperClass}<${entity}>
|
||||||
|
<% }else{ %>
|
||||||
|
public interface ${table.mapperName} extends ${superMapperClass}<${entity}> {
|
||||||
|
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
41
src/test/resources/codetpls/mapper.xml.btl
Normal file
41
src/test/resources/codetpls/mapper.xml.btl
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="${package.Mapper}.${table.mapperName}">
|
||||||
|
|
||||||
|
<% if(enableCache){ %>
|
||||||
|
<!-- 开启二级缓存 -->
|
||||||
|
<cache type="${cacheClassName}"/>
|
||||||
|
|
||||||
|
<% } %>
|
||||||
|
<% if(baseResultMap){ %>
|
||||||
|
<!-- 通用查询映射结果 -->
|
||||||
|
<resultMap id="BaseResultMap" type="${package.Entity}.${entity}">
|
||||||
|
<% for(field in table.fields){ %>
|
||||||
|
<% /** 生成主键排在第一位 **/ %>
|
||||||
|
<% if(field.keyFlag){ %>
|
||||||
|
<id column="${field.name}" property="${field.propertyName}" />
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
<% for(field in table.commonFields){ %>
|
||||||
|
<% /** 生成公共字段 **/ %>
|
||||||
|
<result column="${field.name}" property="${field.propertyName}" />
|
||||||
|
<% } %>
|
||||||
|
<% for(field in table.fields){ %>
|
||||||
|
<% /** 生成普通字段 **/ %>
|
||||||
|
<% if(!field.keyFlag){ %>
|
||||||
|
<result column="${field.name}" property="${field.propertyName}" />
|
||||||
|
<% } %>
|
||||||
|
<% } %>
|
||||||
|
</resultMap>
|
||||||
|
<% } %>
|
||||||
|
<% if(baseColumnList){ %>
|
||||||
|
<!-- 通用查询结果列 -->
|
||||||
|
<sql id="Base_Column_List">
|
||||||
|
<% for(field in table.commonFields){ %>
|
||||||
|
${field.columnName},
|
||||||
|
<% } %>
|
||||||
|
${table.fieldNames}
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<% } %>
|
||||||
|
</mapper>
|
||||||
10
src/test/resources/codetpls/mapperMethods.btl
Normal file
10
src/test/resources/codetpls/mapperMethods.btl
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<% if(elementType == 'select'){ %>
|
||||||
|
<% if(config.resultMap != null){ %>
|
||||||
|
<select id="${config.mapperElementId}" resultMap="${config.resultMap}">
|
||||||
|
<% }%>
|
||||||
|
<% if(config.resultMap == null){ %>
|
||||||
|
<select id="${config.mapperElementId}" resultType="${config.resultType}">
|
||||||
|
<% }%>
|
||||||
|
${sql}
|
||||||
|
</select>
|
||||||
|
<% } %>
|
||||||
3
src/test/resources/codetpls/resultMap.btl
Normal file
3
src/test/resources/codetpls/resultMap.btl
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<resultMap id="${config.dtoName}Map" type="${config.fullPackage}">
|
||||||
|
<% for(field in config.fields){ %><result column="${field.columnName}" property="${field.propertyName}" /><% } %>
|
||||||
|
</resultMap>
|
||||||
20
src/test/resources/codetpls/service.java.btl
Normal file
20
src/test/resources/codetpls/service.java.btl
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package ${package.Service};
|
||||||
|
|
||||||
|
import ${package.Entity}.${entity};
|
||||||
|
import ${superServiceClassPackage};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* ${table.comment!} 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ${author}
|
||||||
|
* @since ${date}
|
||||||
|
*/
|
||||||
|
<% if(kotlin){ %>
|
||||||
|
interface ${table.serviceName} : ${superServiceClass}<${entity}>
|
||||||
|
<% }else{ %>
|
||||||
|
public interface ${table.serviceName} extends ${superServiceClass}<${entity}> {
|
||||||
|
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
28
src/test/resources/codetpls/serviceImpl.java.btl
Normal file
28
src/test/resources/codetpls/serviceImpl.java.btl
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
package ${package.ServiceImpl};
|
||||||
|
|
||||||
|
import ${package.Entity}.${entity};
|
||||||
|
import ${package.Mapper}.${table.mapperName};
|
||||||
|
<% if(table.serviceInterface){ %>
|
||||||
|
import ${package.Service}.${table.serviceName};
|
||||||
|
<% } %>
|
||||||
|
import ${superServiceImplClassPackage};
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* ${table.comment!} 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author ${author}
|
||||||
|
* @since ${date}
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
<% if(kotlin){ %>
|
||||||
|
open class ${table.serviceImplName} : ${superServiceImplClass}<${table.mapperName}, ${entity}>()<% if(table.serviceInterface){ %>, ${table.serviceName}<% } %> {
|
||||||
|
|
||||||
|
}
|
||||||
|
<% }else{ %>
|
||||||
|
public class ${table.serviceImplName} extends ${superServiceImplClass}<${table.mapperName}, ${entity}><% if(table.serviceInterface){ %> implements ${table.serviceName}<% } %> {
|
||||||
|
|
||||||
|
}
|
||||||
|
<% } %>
|
||||||
Reference in New Issue
Block a user