浦东新区网站设计,苏州市城乡和建设局网站,深圳单位网站建设服务公司,企业信用信息查询公示系统河北mybatis-plus逆向code generator pgsql实践 环境准备重要工具的版本供参考pom依赖待逆向的SQL 配置文件CodeGenerator配置类配置类说明 环境准备
重要工具的版本
jdk1.8.0_131springboot 2.7.6mybatis-plus 3.5.7pgsql 14.15
供参考pom依赖
?xml version1.0?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.tgh/groupIdartifactIdparent-demo/artifactIdversion0.0.1-SNAPSHOT/versionnameparent-demo/namedescriptionparent-demo/descriptionmodulesmodulesecurity-demo/module/modulespropertiesjava.version1.8/java.versionproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingspring-boot.version2.7.6/spring-boot.version/propertiespackagingpom/packagingdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.thymeleaf.extras/groupIdartifactIdthymeleaf-extras-springsecurity5/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.postgresql/groupIdartifactIdpostgresql/artifactIdscoperuntime/scope/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.7/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-generator/artifactIdversion3.5.7/version/dependencydependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-openapi2-spring-boot-starter/artifactIdversion4.4.0/version/dependencydependencygroupIdorg.freemarker/groupIdartifactIdfreemarker/artifactIdversion2.3.30/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-test/artifactIdscopetest/scope/dependencydependencygroupIdcom.alibaba.fastjson2/groupIdartifactIdfastjson2/artifactIdversion2.0.51/version/dependency/dependenciesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion${spring-boot.version}/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementbuildpluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.8.1/versionconfigurationsource1.8/sourcetarget1.8/targetencodingUTF-8/encoding/configuration/pluginplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion${spring-boot.version}/versionconfigurationmainClasscom.tgh.parentdemo.ParentDemoApplication/mainClassskiptrue/skip/configurationexecutionsexecutionidrepackage/idgoalsgoalrepackage/goal/goals/execution/executions/plugin/plugins/build/project
待逆向的SQL
-- 文档主表
CREATE TABLE t_document_m (doc_m_id varchar(32) COLLATE pg_catalog.default NOT NULL,doc_m_name varchar(100) COLLATE pg_catalog.default,relate_biz_id varchar(32) COLLATE pg_catalog.default,create_time timestamp(0),create_by_uuid varchar(32) COLLATE pg_catalog.default,create_by_account varchar(32) COLLATE pg_catalog.default,create_by_name varchar(100) COLLATE pg_catalog.default,last_update_time timestamp(0),last_update_uuid varchar(32) COLLATE pg_catalog.default,last_update_account varchar(32) COLLATE pg_catalog.default,last_update_name varchar(100) COLLATE pg_catalog.default,CONSTRAINT t_document_m_pkey PRIMARY KEY (doc_m_id)
)
;COMMENT ON COLUMN t_document_m.doc_m_id IS 文档主表ID;COMMENT ON COLUMN t_document_m.doc_m_name IS 文档主表名称;COMMENT ON COLUMN t_document_m.relate_biz_id IS 关联业务ID;COMMENT ON COLUMN t_document_m.create_time IS 创建时间;COMMENT ON COLUMN t_document_m.create_by_uuid IS 创建人uuid;COMMENT ON COLUMN t_document_m.create_by_account IS 创建人账号;COMMENT ON COLUMN t_document_m.create_by_name IS 创建人名称;COMMENT ON COLUMN t_document_m.last_update_time IS 最后更新时间;COMMENT ON COLUMN t_document_m.last_update_uuid IS 最后跟新人uuid;COMMENT ON COLUMN t_document_m.last_update_account IS 最后更新人账号;COMMENT ON COLUMN t_document_m.last_update_name IS 最后更新人名称;COMMENT ON TABLE t_document_m IS 文档主表;-- 文档明细表
CREATE TABLE t_document_d (doc_d_id varchar(32) COLLATE pg_catalog.default NOT NULL,doc_m_id varchar(32) COLLATE pg_catalog.default,doc_d_name varchar(255) COLLATE pg_catalog.default,file_id varchar(32) COLLATE pg_catalog.default,file_name varchar(100) COLLATE pg_catalog.default,file_suffix varchar(10) COLLATE pg_catalog.default,file_size varchar(10) COLLATE pg_catalog.default,create_time timestamp(0),create_by_uuid varchar(32) COLLATE pg_catalog.default,create_by_account varchar(32) COLLATE pg_catalog.default,create_by_name varchar(100) COLLATE pg_catalog.default,last_update_time timestamp(0),last_update_uuid varchar(32) COLLATE pg_catalog.default,last_update_account varchar(32) COLLATE pg_catalog.default,last_update_name varchar(100) COLLATE pg_catalog.default,CONSTRAINT t_document_d_pkey PRIMARY KEY (doc_d_id)
)
;COMMENT ON COLUMN t_document_d.doc_d_id IS 文档明细ID;COMMENT ON COLUMN t_document_d.doc_m_id IS 文档主表ID;COMMENT ON COLUMN t_document_d.doc_d_name IS 文档主表名称;COMMENT ON COLUMN t_document_d.file_id IS 文件业务ID;COMMENT ON COLUMN t_document_d.file_name IS 文件名称;COMMENT ON COLUMN t_document_d.file_suffix IS 文件后缀;COMMENT ON COLUMN t_document_d.file_size IS 单位kb;COMMENT ON COLUMN t_document_d.create_time IS 创建时间;COMMENT ON COLUMN t_document_d.create_by_uuid IS 创建人uuid;COMMENT ON COLUMN t_document_d.create_by_account IS 创建人账号;COMMENT ON COLUMN t_document_d.create_by_name IS 创建人名称;COMMENT ON COLUMN t_document_d.last_update_time IS 最后更新时间;COMMENT ON COLUMN t_document_d.last_update_uuid IS 最后跟新人uuid;COMMENT ON COLUMN t_document_d.last_update_account IS 最后更新人账号;COMMENT ON COLUMN t_document_d.last_update_name IS 最后更新人名称;COMMENT ON TABLE t_document_d IS 文档明细表;配置文件
CodeGenerator配置类
参考代码生成器的快速生成
package com.mapper;import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;import java.sql.Types;
import java.util.Collections;/*** author PineTree* description: TODO* date 2025/2/12 22:56*/
public class CodeGenerator {public static void main(String[] args) {FastAutoGenerator.create(jdbc:postgresql://192.168.32.155:8848/security-demo, postgres, postgres).globalConfig(builder - {builder.author(PineTree) // 设置作者.enableSwagger() // 开启 swagger 模式.outputDir(F:\\Development-files\\Java\\parent-demo\\security-demo\\src\\main\\java); // 指定输出目录}).dataSourceConfig(builder -builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) - {int typeCode metaInfo.getJdbcType().TYPE_CODE;if (typeCode Types.SMALLINT) {// 自定义类型转换return DbColumnType.INTEGER;}return typeRegistry.getColumnType(metaInfo);})).packageConfig(builder -builder.parent(com.tgh) // 设置父包名.moduleName(securitydemo) // 设置父包模块名.pathInfo(Collections.singletonMap(OutputFile.xml, F:\\Development-files\\Java\\parent-demo\\security-demo\\src\\main\\resources\\mapper)) // 设置mapperXml生成路径).strategyConfig(builder -builder.addInclude(t_document_d, t_document_m) // 设置需要生成的表名.addTablePrefix(t_, c_) // 设置过滤表前缀).templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板默认的是Velocity引擎模板.execute();}
}
配置类说明
运行后会在指定的目录和包下生成class和xml文件一般情况下只需要修改这六处地方即可若有进一步需求后续补充 本博客设计到的代码commit记录可参考 码云