当前位置: 首页 > news >正文

mybatis-plus逆向code generator pgsql实践

mybatis-plus逆向code generator pgsql实践

  • 环境准备
    • 重要工具的版本
    • 供参考pom依赖
    • 待逆向的SQL
  • 配置文件
    • CodeGenerator配置类
    • 配置类说明

环境准备

重要工具的版本

  1. jdk1.8.0_131
  2. springboot 2.7.6
  3. mybatis-plus 3.5.7
  4. pgsql 14.15

供参考pom依赖

<?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.tgh</groupId><artifactId>parent-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>parent-demo</name><description>parent-demo</description><modules><module>security-demo</module></modules><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.7.6</spring-boot.version></properties><packaging>pom</packaging><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.thymeleaf.extras</groupId><artifactId>thymeleaf-extras-springsecurity5</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.7</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.7</version></dependency><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.4.0</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.30</version></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><dependency><groupId>org.springframework.security</groupId><artifactId>spring-security-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.51</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.tgh.parentdemo.ParentDemoApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</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记录可参考:
码云

相关文章:

mybatis-plus逆向code generator pgsql实践

mybatis-plus逆向code generator pgsql实践 环境准备重要工具的版本供参考pom依赖待逆向的SQL 配置文件CodeGenerator配置类配置类说明 环境准备 重要工具的版本 jdk1.8.0_131springboot 2.7.6mybatis-plus 3.5.7pgsql 14.15 供参考pom依赖 <?xml version"1.0&quo…...

Android Studio:RxBus结合ICompositeSubscription使用

我现在想用 RxBus 来发布和订阅事件&#xff0c;同时使用 ICompositeSubscription 来管理订阅。跟前一个博客的区别在于&#xff0c;事件流的产生方式不同&#xff0c;更加得全面。 目标 使用 RxBus 发布事件。使用 ICompositeSubscription 来管理订阅。在 Activity 中创建订…...

微软AutoGen高级功能——Magentic-One

介绍 大家好&#xff0c;博主又来给大家分享知识了&#xff0c;这次给大家分享的内容是微软AutoGen框架的高级功能Magentic-One。那么它是用来做什么的或它又是什么功能呢&#xff0c;我们直接进入正题。 Magentic-One Magnetic-One是一个通用型多智能体系统&#xff0c;用于…...

redis cluster测试

集群节点信息这时候停掉一个master 172.30.60.31 从集群信息集中我们可以看到172.30.60.31的slave是172.30.60.41&#xff0c;查看41的日志&#xff0c;发现他成为了新的master 这时候我们在将172.30.60.41也杀死&#xff0c;会发现集群异常了 尝试把172.30.60.31启动&#xff…...

【ARM】JTAG接口介绍

1、 文档目标 对 JTAG 接口有更多的认识&#xff0c;在遇到关于 JTAG 接口问题时有一些排查的思路。 2、 问题场景 在使用调试器过程时&#xff0c;免不了要接触到 JTAG 接口&#xff0c;当出现连接不上时&#xff0c;就不知道从哪来进行排查。 3、软硬件环境 1 软件版本&am…...

处理项目中存在多个版本的jsqlparser依赖

异常提示 Correct the classpath of your application so that it contains a single, compatible version of net.sf.jsqlparser.statement.select.SelectExpressionIte实际问题 原因&#xff1a;项目中同时使用了 mybatis-plus 和 pagehelper&#xff0c;两者都用到了 jsqlpa…...

部署 DeepSeek R1各个版本所需硬件配置清单

DeepSeek-R1 通过其卓越的推理性能和灵活的训练机制&#xff0c;在 2025 年的春节期间受到了广泛关注。 DeepSeek-R1 是一款高性能的 AI 推理模型&#xff0c;主要通过强化学习技术来增强模型在复杂任务场景下的推理能力。 在本地部署 DeepSeek-R1 时&#xff0c;尤其是完整的…...

数据结构:Map Set(一)

目录 一、搜索树 1、概念 2、查找 3、插入 4、删除 二、搜索 1、概念及场景 2、模型 &#xff08;1&#xff09;纯key模型 &#xff08;2&#xff09;Key-Value模型 三、Map的使用 1、什么是Map&#xff1f; 2、Map的常用方法 &#xff08;1&#xff09;V put(K …...

zabbix 监控系统 配置钉钉告警

步骤1&#xff1a;创建钉钉群 步骤2&#xff1a;创建机器人 点击群设置 然后下划选择机器人。 点击添加机器人 选择自定义机器人 点击添加 1、设置机器人的名字和群组 2、设置自定义关键字 zabbix 告警 报警 恢复 3、点击我已阅读并同意 4、点击完成 生成webhook 链接 注…...

跟着李沐老师学习深度学习(十一)

经典的卷积神经网络 在本次笔记中主要介绍一些经典的卷积神经网络模型&#xff0c;主要包含以下&#xff1a; LeNet&#xff1a;最早发布的卷积神经网络之一&#xff0c;目的是识别图像中的手写数字&#xff1b;AlexNet&#xff1a; 是第一个在大规模视觉竞赛中击败传统计算机…...

32单片机学习记录4之串口通信

32单片机学习记录4之串口通信 前置 STM32的GPIO口有通用模式&#xff0c;复用模式&#xff0c;模拟模式三种&#xff0c;加上输入输出就是有6中对应的模式。 我学习了通用模式&#xff0c;会使用GPIO口使用一些简单外设&#xff0c;如LED&#xff0c;独立按键&#xff0c;红外…...

微信小程序 - 组件和样式

组件和样式介绍 在开 Web 网站的时候&#xff1a; 页面的结构由 HTML 进行编写&#xff0c;例如&#xff1a;经常会用到 div、p、 span、img、a 等标签 页面的样式由 CSS 进行编写&#xff0c;例如&#xff1a;经常会采用 .class 、#id 、element 等选择器 但在小程序中不能…...

JavaScript 发起网络请求 axios、fetch、async / await

目录 fetch 发送 GET 请求&#xff08;fetch&#xff09; 发送 POST 请求&#xff08;fetch&#xff09; 处理后台异常响应 async / await async await 发送 GET 请求&#xff08;async / await fetch&#xff09; 发送 POST 请求&#xff08;async / await fetch&…...

本地搭建自己的专属客服之OneApi关联Ollama部署的大模型并创建令牌《下》

这里写目录标题 OneApi1、渠道设置2、令牌创建 配置文件修改修改配置文件docker-compose.yml修改config.json到此结束 上文讲了如何本地docker部署fastGtp&#xff0c;相信大家也都已经部署成功了&#xff01;&#xff01;&#xff01; 今天就说说怎么让他们连接在一起 创建你的…...

Win10环境借助DockerDesktop部署最新MySQL9.2

Win10环境借助DockerDesktop部署最新MySQL9.2 前言 作为一杆主要撸Java的大数据平台开发攻城狮&#xff0c;必不可少要折腾各种组件&#xff0c;环境和版本一直是很头疼的事情。虽然可以借助Anaconda来托管Python的环境&#xff0c;也可以使用多个虚拟机来部署不同的环境&…...

【Maven】多module项目优雅的实现pom依赖管理

【Maven】多module项目优雅的实现pom依赖管理 【一】方案设计原则【二】项目结构示例【三】实现思路【1】可能的问题点&#xff1a;【2】解决方案的思路&#xff1a;【3】需要注意的地方&#xff1a;【4】可能的错误&#xff1a; 【四】实现案例【1】父POM设计&#xff08;pare…...

前端vue引入特殊字体不生效

引入特殊字体ttf&#xff0c;TTF等发现开发环境中生效&#xff0c;项目部署后不生效何解&#xff1f; 1. 本地生效的原因 本地使用的是本地的资源&#xff0c;控制台可以看到对ttf文件的请求与加载。 2.部署后不生效的原因与解决 控制台可以看到对ttf资源文件的请求加载失败…...

【Linux】--- 基础开发工具之yum/apt、vim、gcc/g++的使用

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; Linux网络编程 本篇博客我们来认识一下Linux中的一些基础开发工具 --- yum,vim,gcc/g。 &#x1f3e0; yum &#x1f3b8; 什么是yum 当用户想下载软…...

WEB安全--SQL注入--INTO OUTFILE

一、INTO OUTFILE 函数语法&#xff1a; SELECT column1, column2, INTO OUTFILE file_path FROM your_table WHERE your_conditions; 使用此方式在SQL注入的过程中可以&#xff1a; 1、上传shell得到数据库的后端的操作权限 2、爆出数据库的信息 二、使用该函数的条件&#…...

如何从0开始将vscode源码编译、运行、打包桌面APP

** 网上关于此的内容很少&#xff0c;今天第二次的完整运行了&#xff0c;按照下文的顺序走不会出什么问题。最重要的就是环境的安装&#xff0c;否则极其容易报错&#xff0c;请参考我的依赖版本以及文末附上的vscode官方指南 ** 第一步&#xff1a;克隆 VSCode 源码 首先…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

深度学习习题2

1.如果增加神经网络的宽度&#xff0c;精确度会增加到一个特定阈值后&#xff0c;便开始降低。造成这一现象的可能原因是什么&#xff1f; A、即使增加卷积核的数量&#xff0c;只有少部分的核会被用作预测 B、当卷积核数量增加时&#xff0c;神经网络的预测能力会降低 C、当卷…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...