Mysql快速生成Java实体类

news2024/9/20 19:20:58

需求缘由

Mysql数据库表结构
在使用MybatisPlus过程中,就肯定会创建实体类,虽然 MybatisPlus 也为我们提供了代码生成器,但是我感觉功能有点多了,我只需要创建实体的方法即可,假如我想快速将上述表转为如下的Bean对象,该怎么搞呢?

/**
 *主键
 */
@TableId(value = "id", type = IdType.UUID)
private Integer id;
/**
 *名称
 */
@TableField(value = "name")
private String name;
/**
 *金额
 */
@TableField(value = "money")
private BigDecimal money;
/**
 *年龄
 */
@TableField(value = "age")
private Integer age;
/**
 *创建时间
 */
@TableField(value = "create_time")
private Date createTime;
/**
 *更新时间
 */
@TableField(value = "update_time")
private Date updateTime;

SQL语句

针对实体表的处理,我们可以执行以下SQL语句,并将结果复制到Java代码中即可(需要提前执行 下划线转驼峰函数 哦)

SELECT
	CONCAT(
		"/**\n *",
		REPLACE ( REPLACE ( COLUMN_COMMENT, CHAR ( 10 ), '' ), CHAR ( 13 ), '' ),
		"\n */\n",
	IF
		( COLUMN_KEY = 'PRI', concat( "@TableId(value = \"", COLUMN_NAME, "\", type = IdType.ASSIGN_ID)\n" ), concat( "@TableField(value = \"", COLUMN_NAME, "\")\n" ) ),
		"private ",
	CASE DATA_TYPE 
			WHEN "int" THEN "Integer" 
			WHEN "char" THEN "String" 
			WHEN "varchar" THEN	"String" 
			WHEN "timestamp" THEN "LocalDateTime" 
			WHEN "datetime" THEN "LocalDateTime" 
			WHEN "decimal" THEN	"BigDecimal" 
			WHEN "tinyint" THEN	"Integer" 
			ELSE "Object" 
		END,
		" ",
		underlineToCamel ( COLUMN_NAME ),
		";" 
) 
FROM
	information_schema.COLUMNS 
WHERE
	table_schema = '【替换为自己的库名】' 
	AND table_name = '【替换为表名】' 
ORDER BY
	COLUMN_KEY DESC,
	ORDINAL_POSITION;

附:下划线转驼峰函数

CREATE DEFINER=`root`@`%` FUNCTION `underlineToCamel`(paramString VARCHAR(200)) RETURNS varchar(200) CHARSET utf8
    DETERMINISTIC
begin
		set paramString = replace(paramString, '_a', 'A');
    set paramString = replace(paramString, '_b', 'B');
    set paramString = replace(paramString, '_c', 'C');
    set paramString = replace(paramString, '_d', 'D');
    set paramString = replace(paramString, '_e', 'E');
    set paramString = replace(paramString, '_f', 'F');
    set paramString = replace(paramString, '_g', 'G');
    set paramString = replace(paramString, '_h', 'H');
    set paramString = replace(paramString, '_i', 'I');
    set paramString = replace(paramString, '_j', 'J');
    set paramString = replace(paramString, '_k', 'K');
    set paramString = replace(paramString, '_l', 'L');
    set paramString = replace(paramString, '_m', 'M');
    set paramString = replace(paramString, '_n', 'N');
    set paramString = replace(paramString, '_o', 'O');
    set paramString = replace(paramString, '_p', 'P');
    set paramString = replace(paramString, '_q', 'Q');
    set paramString = replace(paramString, '_r', 'R');
    set paramString = replace(paramString, '_s', 'S');
    set paramString = replace(paramString, '_t', 'T');
    set paramString = replace(paramString, '_u', 'U');
    set paramString = replace(paramString, '_v', 'V');
    set paramString = replace(paramString, '_w', 'W');
    set paramString = replace(paramString, '_x', 'X');
    set paramString = replace(paramString, '_y', 'Y');
    set paramString = replace(paramString, '_z', 'Z');
    set paramString = replace(paramString, '_', '');
    RETURN paramString;
	end

快去试试吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/690943.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

arcgis api for JavaScript4.2x 在vue中白膜图层的加载、(分类、分段)渲染

这篇文章是对有webgis前端开发经验的人 1、假设之前的三维视图均已成功加载,获取到了三维视图,这里的三维视图变量定义的名字是mapView。(PS:三维视图mapview在项目初始化已经设置了,本示例中会直接使用调用结果&…

CentOS 8安装Oracle 19c rpm包

一、环境 centos 8 oracle 19c rpm安装 二、安装前准备 1、创建用户组 groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle2、安装依赖包 如果yum找不到安装包,可以去下载 https://centos.pkgs.org/ 点击跳转 缺少的依赖包可…

Salesforce流程自动化Flow_Pause功能揭秘!

通过自动化,帮助团队提升效率,将员工从那些重复、枯燥、耗时的工作中解放出来,转而从事更具创造性、更有价值的工作,是很多企业数字化转型朴素而又迫切的需求,也是世界No.1 CRM——Salesforce的一大领先优势。 Flow B…

Java集合框架:优先级队列、PriorityQueue详解

目录 一、优先级队列介绍 1. 什么是大根堆(大堆)和小根堆(小堆) 2. 堆的性质 二、堆的创建 1. 向下调整建堆 向下调整算法代码实现: 2. 创建大根堆 三、堆的插入和删除(向上调整算法) …

Linux性能瓶颈分析之TOP指标分析

Linux性能瓶颈分析之TOP指标分析 文章目录 Linux性能瓶颈分析之TOP指标分析一、查看CPU二、监控CPU总结 一、查看CPU 1.查看cpu基础信息 lscpu2.查看cpu详细信息 cat /proc/cpuinfo3.统计cpu信息 cat /proc/cpuinfo |grep "physical id" |sort |uniq |wc -l 查看…

骨传导耳机可以长期佩戴吗,分享几款舒适度极高的骨传导耳机

近几年有一种新型传播方式的耳机,将声音转化为振动,从而让我们的听觉神经感知到。这种声音传播方式叫做"骨传导",所以叫做骨传导耳机。因为它不需要通过耳膜进行传播声音,所以可以让耳朵在不接触外界的情况下听到声音。…

B051-cms06-退出 回车登录 登录拦截 记住我 SVN

目录 注销功能实现1.找到退出按钮修改请求路径2.后端删除Session并跳转到登录页面 回车登录功能登陆拦截1.编写登录拦截器2.配置拦截器 记住我后端实现页面实现 取消记住我后端实现页面实现 注销功能实现 1.找到退出按钮修改请求路径 header.jsp <% page language"j…

翻过那座山——Jenkins编译发布web程序(.net framework web application)

&#x1f4e2;欢迎点赞 &#xff1a;&#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff0c;赐人玫瑰&#xff0c;手留余香&#xff01;&#x1f4e2;本文作者&#xff1a;由webmote 原创&#x1f4e2;作者格言&#xff1a;新的征程&#xff0c;我们面对的不是…

无法登录github解决方法

140.82.113.4 github.com 199.232.69.194 github.global.ssl.fastly.net 185.199.108.153 assets-cdn.github.com 185.199.109.153 assets-cdn.github.com 185.199.110.153 assets-cdn.github.com 185.199.111.153 assets-cdn.github.com 注意以管理员方式运行notepad才能保存 …

Github上标星40K的Java面试笔记,解决95%以上的Java面试

该文档在Github上收获40Kstar的Java面试神技&#xff08;这赞数&#xff0c;质量多高就不用我多说了吧&#xff09;非常全面&#xff0c;包涵Java基础、Java集合、JavaWeb、Java异常、OOP、IO与NIO、反射、注解、多线程、JVM、MySQL、MongoDB、Spring全家桶、计算机网络、分布式…

集成学习(ensemble learning)应如何入门?

集成学习算法之间的主要区别在于以下3个方面: 提供给个体学习器的训练数据不同; 产生个体学习器的过程不同; 学习结果的组合方式不同&#xff0c;从这三个方面去学。 多样性 数据样本多样性&#xff1a;产生数据多样性的方法主要有3种: 输入样本扰动; 输入属性扰动; 输出表示…

掌握Python的常用模块pandas

Pandas 简介 Pandas 是 Python 的核心数据分析支持库&#xff0c;提供了快速、灵活、明确的数据结构&#xff0c;旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具&#xff0c;其长远目标是成为最强大、最灵活、可以支持…

10 编码转换问题

文章目录 字符编码问题编码转换问题ANSI转UnicodeUnicode转ANSIUtf8转 ANSIutf8 转UnicodeANSI 转UTF-8Unicode 转 UTF-8 全部代码 字符编码问题 Windows API 函数 MessageBoxA:MessageBox 内部实现&#xff0c;字符串编码(ANSI)转换成了Unicode,在调用MessageboxW MessageBox:…

助推RASP2.0 领航ADR新赛道 边界无限打造应用安全防护新范式

2023年以来&#xff0c;数字安全一词多次被提及&#xff0c;成为了我们生活和工作中的一项重要课题。近日&#xff0c;由数世咨询、CIO时代联合主办&#xff0c;新基建创新研究院作为智库支持的“第三届数字安全大会”在北京隆重举办&#xff0c;本届大会以“风险驱动”为主题&…

第26章 uView 内置路由使用注意事项

1 uView 内置路由不支持通过“localhost”域名直接获取数据。 在前后分离开发中“axios” 路由支持使用“localhost”域名或IP地址获取后端的数据&#xff0c;所以不管是IIS部署还是后端调试通过“axios” 路由都能获取数据&#xff0c;对于.NetCore的前后端分离开发来说“axio…

python爬虫之Scrapy框架--保存图片(详解)

目录 Scrapy 使用ImagePipeline 保存图片 使用图片管道 具体步骤 安装相关的依赖库 创建Scrapy项目 配置settings.py 定义Item 编写Spider 运行Spider Scrapy 自定义ImagePipeline 自定义图片管道 Scrapy 使用ImagePipeline 保存图片 Scrapy提供了一个 ImagePipelin…

使用原生AJAX请求数据

一、什么是AJAX AJAX英文全称 Asynchronous Javascript And XML&#xff08;异步的JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术&#xff0c;用于浏览器和服务器之间进行数据交互。AJAX在浏览器与Web服务器之间使用异步数据传输&#xf…

【Jetpack】Navigation 导航组件 ③ ( 为 Navigation Graph 页面跳转 action 添加跳转动画 )

文章目录 一、为 Navigation Graph 添加跳转动画1、进入 Navigation Graph 配置的 Design 模式2、选中 action 跳转3、为 action 跳转设置 enterAnim 进入动画4、为 action 跳转设置 exitAnim 退出动画5、通过代码为 action 跳转设置进入 / 退出动画6、执行效果 代码地址 : CS…

DBeaver连接mysql时报错com.mysql.cj.jdbc.Driver的解决方法【修改驱动下载的maven地址和重新下载驱动】

文章目录 说明解决方法1、打开DBeaver点击窗口-->窗口-->首选项-->链接-->点击驱动-->Maven-->添加2、删除已有的驱动3、重新创建mysql链接 说明 网上下载了最新版本的DBeaver软件&#xff0c;但是链接mysql的时候驱动下载失败&#xff0c;所以就报下面错误…

Cisco Secure Client 5.0.03072 (macOS, Linux, Windows iOS, Andrord)

Cisco Secure Client 5.0.03072 (macOS, Linux, Windows & iOS, Andrord) 思科安全客户端&#xff08;包括 AnyConnect&#xff09; 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-secure-client-5/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出…