spring实体类封装 逆向生成

EasyCode插件实战:从原理到定制,打造高效代码生成工作流 在软件开发领域,代码生成技术是一种基于模板和元数据自动生成源代码的工程实践。其核心原理是通过解析数据源结构(如数据库表),结合预定义的模板文件,利用模板引擎动态渲染出符合规范的代码文件。这项技术的核心价值在于将开发者从大量重复、模式化的编码劳动中解放出来,显著提升开发效率,保证代码风格统一,并减少人为错误。它广泛应用于企业级应用开发、快速原型构建、教学演示等场景,尤其适合需要快速搭建CRUD功能、数据访问层等标准化模块的项目。本文将以热门的EasyCode插件为例,深入解析其如何作为智能开发助手,实现从数据 阅读详情

第一步先连接数据库

public class DBUHelpers {
    private static String DRIVER = "com.mysql.jdbc.Driver";
    private static String URL = "jdbc:mysql://localhost:3306/zhongyin?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
    private static String USERNAME = "root";
    private static String PASSWORD = "123456";
    private static Connection conn;
    private static PreparedStatement ps;
    private static ResultSet rs;

    //预加载
    static{
        try {
            Class.forName(DRIVER);

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    //建立连接
    public static Connection getConn(){
        try {
            conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
            return conn;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

第二部你要通过数据库找到自己所在表中的三个列名

SELECT COLUMN_NAME name,DATA_TYPE type,COLUMN_COMMENT comment FROM information_schema.`COLUMNS` where TABLE_SCHEMA=? and TABLE_NAME=?

sql语句的由来

第三步 

//sql语句把三个需要的搞出来 name 名称 type 类型 comment 注释
    static String sql="SELECT COLUMN_NAME name,DATA_TYPE type,COLUMN_COMMENT comment FROM information_schema.`COLUMNS` where TABLE_SCHEMA=? and TABLE_NAME=?";
    static String[] table={"zhongyin","doctor"};
    static String packages="cn.hp.ioc";
    static String tableName=Change_Upper(table[1]);
    static StringBuffer parameter=new StringBuffer();

第四步

配置字母大小写

/**
     * 首字母大写,如果有,则下一个字母大写
     * @param s1
     * @return
     */
    public static String Change_Upper(String s1) {
        String r = "";
        String[] a = s1.split("_");//以_为分隔符,将单词分开
        String[] b = new String[a.length + 1];
        for (int i = 0; i < a.length; i++) {
            //substring(0,1)首字母,toUpperCase()大写
            b[i] = a[i].substring(0, 1).toUpperCase() + a[i].substring(1, a[i].length());
            r = r + b[i];
        }
        return r;
    }


    /**
     * //类型转换
     * @param dataType
     * @return
     */
    public static String convertDataType(String dataType) {
        switch (dataType) {
            case "varchar":
            case "longtext":
            case "text":
                return "String";
            case "double":
                return "Double";
            case "int":
            case "tinyint":
                return "Integer";
            case "bigint":
                return "Long";
            case "datetime":
            case "timestamp":
            case "Date":
                return "Date";
            case "decimal":
                return "BigDecimal";
            default:
                return "";
        }
    }

然后设置编码格式

 /**
     * 将更改后的文件输出
     * @param clz
     * @param path
     */
    public static void outPW(String clz,String path){
        PrintWriter pw=null;
        try {
            pw = new PrintWriter(path,"UTF-8");
            pw.write(clz);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if(pw!=null){
                pw.close();
            }
        }
    }

第五步开始导入

 public static void main(String[] args) {
        String clz="package ${packages}.entity;\n" +
                "import lombok.Data;\n" +
                "import java.util.Date;\n" +
                "\n" +
                "@Data\n" +
                "public class $(tableName) {\n" +
                "  ${parameter}\n" +
                "\n" +
                "}\n";
        List<Map> list = DBUHelpers.select(sql,table);
        for (Map map:list){
            System.out.println(map);
            parameter.append(" /**\n")
                    .append("  *"+map.get("comment")+"\n")
                    .append("  **/\n")
                    .append("     private"+" "+convertDataType(map.get("type").toString())+" "+map.get("name")+" "+";\n");
        }
        System.out.println(clz.replace("${packages}", packages)
                .replace("$(tableName)",tableName)
                .replace("${parameter}",parameter.toString()));
        outPW(clz.replace("${packages}", packages)
                .replace("$(tableName)",tableName)
                .replace("${parameter}",parameter.toString()),tableName.concat(".java"));
    }

第六步开始运行

一个列名类,拉到你封装实体类的包下即可

这就是逆向生成实体类,不懂不会可以私聊我

逆向数据库生成实体类 mysql逆向生成数据库实体类,实测有效,有数据库字段注释,命名是由驼峰命名,支持格式例如:SYS_USER 生成实体类SysUser 立即下载

相关推荐

springboot逆向生成mybatis

springboot逆向生成mybatis springboot逆向生成mybatis

eclipse逆向生成实体类

参考的文章:eclipse 使用JPA Tools 根据数据库表自动生成实体类创建JPA工程时提示:at least one user library must be selected本文介绍了如何使用eclipse在springboot中使用spring data jpa逆向生成实体类。第一步:创建数据库连接在Eclipse中,依次选择Window-&gt;Show View-&gt;Data ...

hsg_happyLearning的博客 5715

mybatis plus+springboot反向生成代码

mybatis plus+springboot反向生成代码,根据数据库表生成基础的类,控制器,dao ,service代码。

IntelliJ IDEA逆向生成实体类

1.首先连接数据库,,这里连接的是mysql。 2.填写 连接数据库的信息,填写完成后可以点击Test Connection,测试一下是否连接成功,右边显示绿色的Successful,则表示连接成功。 3.再次打开Database的时候就会显示你所连接的数据库里的所有表。 4.想要逆向生成需要hibernate.cfg.xml文件。 5. 这时项目里就会有生成好hibern...

qq331709114的博客 1万+

北斗B1频点信号捕获实战:如何应对NH码跳变带来的挑战?

本文深入探讨了北斗B1频点信号捕获中NH码跳变带来的核心挑战。针对NH码以1kHz速率调制导致的相干积分中断和相关峰畸变问题,文章提出并详细解析了一种基于伪码与多普勒频率分离技术的优化捕获方案。该方案通过差分处理消除NH跳变影响,并利用匹配滤波器与FFT分别进行码相位和多普勒频率的快速估计,有效提升了弱信号环境下的捕获灵敏度和稳定性,为北斗接收机设计提供了实用的工程参考。

joy55的博客 535

第零章 序 Chisel教程汇总

笔者目前西安交通大学微电子硕士在读,研究方向为数字集成电路设计与体系结构。鉴于目前RISC-V的火热程度,笔者参与了课题组的RISC-V项目,并了解、学习了颇受关注的新型硬件构建语言——Chisel,当前参与的神经网络加速器设计便是使用Chisel开发的。这是一门敏捷开发语言,据称要比传统的Verilog语言快很多。在亲身使用过后,笔者发现确实快了不少。这主要得益于Scala作为高级语言的简洁风格...

qq_34291505的博客 7万+

mysql 生成实体类_逆向 MySQL 生成实体类

支持多个表(或者根据直接查询数据表的所有表)前沿,在程序猿确定需求文档时候,设计好了数据表后,然后第一步就是及时提交实体类了,好方便小组同事写拓展业务代码。之前每次接到需求,都是设计一两张表,我就赖得写一键生成实体类代码,蠢办法一个Ctrl+C,Ctrl+V,请叫我复制粘贴工程师。 但是这周接到的需求,重构XXX系统,和老大,同事们开完会,讨论后,建立了个8张表。。。。难道今天要报废我的Ctrl,...

weixin_42165490的博客 842

ESP32固定翼航模硬件设计与飞行力学解析

固定翼无人机是嵌入式控制与空气动力学交叉实践的经典载体,其飞行稳定性本质源于重心、气动中心与控制面的物理耦合关系。理解静稳定度(Static Margin)、升力系数调控、偏航力矩生成等基础原理,是实现可靠姿态控制的前提。在低成本工程约束下,材料刚度、结构弹性与电机-驱动协同设计共同决定了系统动态响应边界。ESP32平台凭借高精度PWM、低功耗双模无线及丰富GPIO,成为教学级航模开发的理想主控;而魔术贴基板、可调电池配重、柔性尾翼等创新结构,则将抽象的飞行力学概念转化为可测量、可调试的实体对象,广泛应用于

weixin_29859471的博客 365

mybatis 实体类反向生成工具

mybatis 实体类反向生成工具 背景 今日有个朋友向我吐槽说mybatis自带的反向生成工具有点不好用,特别是映射的实体。在大多数场景下我们一般只需要自动生成PO就好。于是我就自己写了一个自动生成PO的实体,代码我为了追求速度因此有些尚未封装,比如:自动生成的包名,以及动态入参数据库等,这些大家可以用我代码做二次开发。如有兴趣可以把君的二次开发的代码分享与我,到时候扶正该博客。接下来就直接上干货ing~ IndexController package com.ykyun.reflectgenerate.

ruo_yuan 515

Embedding理解及keras中Embedding参数详解,代码案例说明

Embedding理解 嵌入层将正整数(下标)转换为具有固定大小的向量 ------官网 词嵌入是一种语义空间到向量空间的映射,简单说就是把每个词语都转换为固定维数的向量,并且保证语义接近的两个词转化为向量后,这两个向量的相似度也高。 举例说明embedding过程: “Could have done better” 通过索引对该句子进行编码,每个单词分配一个索引,上面的句子就会变成这样: 122 8 114 12 创建嵌入矩阵,即每一个索引需要分配多少维向量,也就是说每个词需要转化为多少维

wo的博客 1万+

一根同轴线,真的扛得住 4K 吗? ——从摄像头带宽算起,聊透车载 SerDes 接口选型

如果你记住这三句话,这篇文章就值了:🎯摄像头带宽 = 分辨率 × 位深 × fps × 开销4K RAW 摄像头 ≈ 3.7Gbps,是现实不是理论SerDes 选型,宁可多留 20%,不要刚刚好。

weixin_43199439的博客 193

eclipse从数据库逆向生成Hibernate实体类

做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO。意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表;要么就先进行数据库表设计,再逆向生成实体类。没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计。 原因是: 1. 1.5倍工作量,浪费时间

鹏霄万里展雄飞 16万+

什么是 SAP ABAP AMDP?

SAP HANA是SAP开发的一种内存数据库管理系统,它具有出色的性能和处理大规模数据的能力。为了充分利用SAP HANA的性能,SAP引入了AMDP技术,以便将数据库操作推送到数据库服务器执行,从而减少数据传输和处理时间。AMDP方法通常需要输入参数和输出参数。输入参数用于传递数据到SQLScript代码,而输出参数用于接收SQLScript代码的结果数据。ENDMETHOD.ENDCLASS.我们定义了一个输入参数来传递销售订单数据,以及一个输出参数来接收计算结果。ENDMETHOD.

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 908

Spring逆向生成封装实体类

首先连接数据库: 创建包 com.hnsl.util 在里边建DBHelper类 package com.yzx.util; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class DBHelper { //驱动 private static String driver =...

Yzx02155611的博客 1020

华为OD机试真题 新系统 9月27号 【数据中心最佳维护窗口】

华为OD机试真题 新系统【数据中心最佳维护窗口】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【数据中心最佳维护窗口】多语言题解。

qq_45776114的博客 1154

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

接口加密参数逆向分析实战:从JS定位到Spring Boot复现

在Web开发与数据对接中,接口安全是核心议题,其中参数加密签名是防止数据篡改和重放攻击的常见手段。其原理通常基于密码学哈希函数(如MD5)和消息认证码(如HMAC-SHA256),结合时间戳、盐值等要素,对请求参数生成唯一签名。这项技术的价值在于保障API通信的完整性与安全性,是构建可靠数据服务的基础。其应用场景广泛,涵盖电商数据聚合、爬虫开发与第三方系统集成等领域。本文以实战为例,深入解析了如何通过抓包、前端代码搜索与动态调试,定位并逆向类似`qn-mhp`的关键加密参数生成逻辑,并最终在Spring B

bangtuo9862的博客 402

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Facebook Graph API中expansionToken的逆向分析与动态生成

expansionToken是现代Web平台在OAuth标准之外引入的一种客户端侧动态参数,本质并非认证凭证,而是基于浏览器上下文(如Tab实例、设备指纹、时间戳)生成的轻量级会话锚点。其原理突破了传统JWT或签名令牌的设计范式,依赖执行环境而非纯算法,因而无法通过curl或requests等无头工具直接复现。该机制体现了大型平台对自动化流量的细粒度识别与管控能力,技术价值在于提升API调用的真实性校验精度,广泛应用于Facebook Graph API等高风控场景。本文围绕expansionToken的抓

weixin_33701564的博客 541

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Spring Data JPA 1.10.1 详解一之Spring Data JPA介绍

一、JPA介绍 JPA是Java Persistence API的缩写,以下的百度百科关于JPA的解释,具体的规范可以去看官网: Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一...

weixin_34137799的博客 110

mysql逆向工程封装_MyBatis高级应用之逆向工程自动生成SQL语句

本文以Spring整合MyBatis环境下,介绍MyBatis逆向工程自动生成pojo,mapper,dao的Java类。MyBatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码,一般在开发中,常用的逆向工程方式是通过数据库的表生成代码。下图为逆向工程依赖的jar包。m...

weixin_31858863的博客 193

哈米音乐 02|MyBatis 逆向工程 + 通用 Base 分层封装 + SSM 底层整合

上一篇完成 Maven 多模块工程、MySQL 数据库环境搭建,本篇聚焦项目包含:MyBatis Generator 逆向自动生成实体 / Mapper、泛型 BaseDao/BaseService 通用 CRUD 与分页封装、Druid 数据源 + Spring 事务整合、单元测试验证。

2201_75940978的博客 385

javaWeb与Spring学习小结

前言 由于我是先学的springboot,然后才学spring,接着springMVC,最后才学的javaWeb,内容比较多容易搞混,在此自己进行一个小总结,比较一下它们之间的关系。 javaWeb tomcat服务器会管理我们自定义的servlet,通过web.xml中的servlet-mapping,tomcat能够将不同请求转交给对应的servlet,实现一系列的功能。 filter用于拦截请求,也由tomcat管理,并通过web.xml配置查找对应的filter路径 SpringMVC

DaHuangXiao的博客 2880

从零开始搭建仿抖音短视频APP-构建后端项目

从零开始搭建仿抖音APP,从上一篇完成前端的搭建之后,该篇主要是对后端进行一系列的配置和操作,补充了一些依赖的作用等...

m0_64005381的博客 1万+

实战指南:如何高效实现桌面应用自动化集成与微信逆向开发

在当今数字化时代,桌面应用自动化技术为开发者提供了无限可能。wxhelper项目作为一个开源微信逆向工程工具,通过DLL注入技术实现了对PC端微信客户端的深度集成,为开发者打开了桌面应用自动化的新世界。本文将深入解析这一技术的实现原理、架构设计和实际应用,帮助技术爱好者和开发者掌握桌面应用逆向工程的核心技能。 ## 技术原理深度解析:从进程注入到HTTP接口 桌面应用自动化集成的核心在于如何与

gitblog_01059的博客 1080

百度翻译#js逆向#2024:从sign参数破解到完整Python调用实战

本文详细解析了2024年百度翻译JS逆向工程的核心挑战,包括sign参数的破解方法和完整Python调用实现。通过动态调试、环境搭建和关键加密逻辑分析,帮助开发者掌握百度翻译API的逆向技术,提升翻译接口的调用效率与稳定性。

weixin_33826609的博客 442
上一篇: 三层架构与MVC的区别
下一篇: 如何在JavaScript中每x秒调用一个函数
变成秃头怪
博客等级 码龄5年 47粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值