Hoy, vi a alguien usando una herramienta de generación de código más inteligente, que es visualizable y configurable. Es muy conveniente. Una vez configurado, se puede usar en cualquier lugar y no se acoplará con el proyecto. Permítanme hablar brevemente sobre cómo úsalo
1. Presente mybatis-plus-generator-ui
Principalmente encapsula mybatis-plus-generator y tiene una interfaz de usuario, todas las cuales están interconectadas, muy convenientes, y también puede personalizar plantillas, etc. Admite POSTGRE_SQL, ORACLE, DB2, MySQL, SQLSERVER y otras bases de datos relacionales comunes.
2. Cómo usar
1. Inicialización
Primero crea un nuevo proyecto maven por ti mismo
herramienta de importación pom:
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.27</version>
</dependency>
<dependency>
<groupId>com.github.davidfantasy</groupId>
<artifactId>mybatis-plus-generator-ui</artifactId>
<version>1.4.5</version>
</dependency>
</dependencies>
Nueva clase de inicio: admite la implementación independiente de GeberatorUIServer como un proyecto de arranque de primavera separado.
package com.springboot.test;
import com.github.davidfantasy.mybatisplus.generatorui.GeneratorConfig;
import com.github.davidfantasy.mybatisplus.generatorui.MybatisPlusToolsApplication;
import com.github.davidfantasy.mybatisplus.generatorui.mbp.NameConverter;
/**
* @author fei.chen
* @projectName mybatis-generator-ui
* @date 2023/5/4下午 4:58
*/
public class GeneratorMain {
public static void main(String[] args) {
GeneratorConfig config = GeneratorConfig.builder().jdbcUrl("jdbc:postgresql://111.111.111.111:15432/tables")
.userName("postgres").password("1111111").driverClassName("org.postgresql.Driver")
// 数据库schema,POSTGRE_SQL,ORACLE,DB2类型的数据库需要指定
.schemaName("public")
// 如果需要修改各类生成文件的默认命名规则,可自定义一个NameConverter实例,覆盖相应的名称转换方法:
.nameConverter(new NameConverter() {
/**
* 自定义Service类文件的名称规则
*/
public String serviceNameConvert(String tableName) {
return this.entityNameConvert(tableName) + "Service";
}
/**
* 自定义Controller类文件的名称规则
*/
public String controllerNameConvert(String tableName) {
return this.entityNameConvert(tableName) + "Controller";
}
}).basePackage("com.springboot.test").port(8068).build();
MybatisPlusToolsApplication.run(config);
}
}
2. Empezar
Simplemente ejecute el método principal directamente y especifique el puerto de ejecución del programa como 8086 en el principal, que es muy similar a SpringBoot.
URL de solicitud: http://localhost:8068/
Se muestran hojas de datos.
3. Generar el código requerido
ok Verifique el proyecto y actualícelo, todo generado:
4, xml puede configurarlo usted mismo
Por ejemplo, quiero agregar una declaración de consulta propia en xml y generarla directamente
Se genera todo lo que necesitas, y es muy conveniente.
3. Configurable
1. Configuración de código
El sufijo Service, Controller, Entity y FieldName se pueden configurar en la clase de inicio
para lograr extensiones personalizadas, que usted mismo puede implementar.
Puede ver la clase NameConverter:
package com.github.davidfantasy.mybatisplus.generatorui.mbp;
import cn.hutool.core.util.StrUtil;
import com.github.davidfantasy.mybatisplus.generatorui.dto.Constant;
import com.google.common.base.Strings;
import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.DOT_JAVA;
import static com.github.davidfantasy.mybatisplus.generatorui.dto.Constant.DOT_XML;
/**
* 自定义各类名称转换的规则
*/
public interface NameConverter {
/**
* 自定义Entity.java的类名称
*
* @param tableName 表名称
* @return
*/
default String entityNameConvert(String tableName) {
if (Strings.isNullOrEmpty(tableName)) {
return "";
}
tableName = tableName.substring(tableName.indexOf(StrUtil.UNDERLINE) + 1, tableName.length());
return StrUtil.upperFirst(StrUtil.toCamelCase(tableName.toLowerCase()));
}
/**
* 自定义表字段名到实体类属性名的转换规则
*
* @param fieldName 表字段名称
* @return
*/
default String propertyNameConvert(String fieldName) {
if (Strings.isNullOrEmpty(fieldName)) {
return "";
}
if (fieldName.contains("_")) {
return StrUtil.toCamelCase(fieldName.toLowerCase());
}
return fieldName;
}
/**
* 自定义Mapper.java的类名称
*/
default String mapperNameConvert(String tableName) {
return entityNameConvert(tableName) + "Mapper";
}
/**
* 自定义Mapper.xml的文件名称
*/
default String mapperXmlNameConvert(String tableName) {
return entityNameConvert(tableName) + "Mapper";
}
/**
* 自定义Service.java的类名称
*/
default String serviceNameConvert(String tableName) {
return "I" + entityNameConvert(tableName) + "Service";
}
/**
* 自定义ServiceImpl.java的类名称
*/
default String serviceImplNameConvert(String tableName) {
return entityNameConvert(tableName) + "ServiceImpl";
}
/**
* 自定义Controller.java的类名称
*/
default String controllerNameConvert(String tableName) {
return entityNameConvert(tableName) + "Controller";
}
/**
* 自定义其它生成文件的文件名(不包括entity,mapper.java,mapper.xml,service,serviceImpl,controller这6种)
*
* @param fileType 在页面上输入的输出文件标识
* @param tableName 关联的数据表名称名称
* @return 生成文件的名称,带后缀
*/
default String outputFileNameConvert(String fileType, String tableName) {
if (fileType.equals(Constant.FILE_TYPE_ENTITY)) {
return this.entityNameConvert(tableName) + DOT_JAVA;
} else if (fileType.equals(Constant.FILE_TYPE_MAPPER)) {
return this.mapperNameConvert(tableName) + DOT_JAVA;
} else if (fileType.equals(Constant.FILE_TYPE_MAPPER_XML)) {
return this.mapperXmlNameConvert(tableName) + DOT_XML;
} else if (fileType.equals(Constant.FILE_TYPE_SERVICE)) {
return this.serviceNameConvert(tableName) + DOT_JAVA;
} else if (fileType.equals(Constant.FILE_TYPE_SERVICEIMPL)) {
return this.serviceImplNameConvert(tableName) + DOT_JAVA;
} else if (fileType.equals(Constant.FILE_TYPE_CONTROLLER)) {
return this.controllerNameConvert(tableName) + DOT_JAVA;
}
return this.entityNameConvert(tableName) + fileType;
}
}
2. Cambia la plantilla por el código fuente
Si necesita personalizar la interfaz de usuario, después de clonar el código, vaya al directorio de la interfaz y lleve a cabo el desarrollo de la extensión correspondiente.
Una vez completada la modificación, los recursos estáticos en src\frontend deben compilarse por separado (el código fuente no contiene páginas compiladas) y ejecutarse en la carpeta src\frontend:
yarn install
yarn run build
4. Dirección de origen
Haz el resto por ti mismo~
- https://github.com/davidfantasy/mybatis-plus-generator-ui