实体转换工具箱
MySQL表结构 ↔ 实体代码 / JSON ↔ 实体 (TypeScript / Java) · 本地处理无上传
什么是实体转换工具箱?
实体转换工具箱是一种代码生成工具,它可以将 MySQL 表结构(CREATE TABLE 语句)或 JSON 数据自动转换为 TypeScript 接口定义或 Java 实体类(POJO)。这种工具大幅减少了后端开发者手动编写实体代码的工作量,避免手写带来的字段遗漏和类型错误。
在前后端开发中,数据库表结构与代码中的实体类是一一对应的。手动编写这些重复性的实体代码既枯燥又容易出错——字段名拼写错误、类型映射不准确、注释遗漏等问题时有发生。实体转换工具通过解析源数据自动生成代码,确保字段名、类型和注释完全准确。
本工具支持两种输入源:MySQL DDL 语句和 JSON 数据。MySQL DDL 模式会提取字段名、类型和 COMMENT 注释;JSON 模式会自动推导数据结构,包括嵌套对象和数组。输出的代码支持 TypeScript 接口和 Java POJO 两种格式,并可自定义命名风格。
为什么需要实体转换工具箱?
实体代码生成是后端开发中的高频需求:
- 新建项目:根据数据库表结构快速生成所有实体类,加速项目初始化
- 接口对接:从 API 返回的 JSON 数据生成 TypeScript 类型定义,提升前端开发效率
- 表结构变更:数据库字段修改后,重新生成实体代码,避免手动同步遗漏
- 多语言项目:同一套表结构需要同时生成 TypeScript 和 Java 代码
- 代码规范:统一命名风格(驼峰/帕斯卡),保持项目代码一致性
使用 IqsBot 实体转换工具箱,你可以快速将表结构或 JSON 转换为规范的实体代码,支持自动提取注释、自定义命名风格和 Lombok 注解。
相比其他代码生成工具,IqsBot 的核心优势是纯浏览器端运行——你的数据库结构和 JSON 数据不会上传到任何服务器,完全在本地处理,安全可靠。
如何使用 IqsBot 实体转换工具箱
基础用法
MySQL DDL 转 TypeScript:
- 选择转换源为「MySQL 表结构」
- 粘贴 CREATE TABLE 语句
- 选择目标语言为 TypeScript
- 点击「生成实体」查看生成的接口代码
JSON 转 Java POJO:
- 选择转换源为「JSON 样本」
- 粘贴 JSON 数据
- 选择目标语言为 Java,勾选「使用 Lombok」
- 点击「生成实体」查看生成的 Java 类
高级功能
- 双输入源:支持 MySQL DDL 和 JSON 两种输入格式
- 双目标语言:支持生成 TypeScript 接口和 Java POJO
- 命名风格:支持驼峰(camelCase)、帕斯卡(PascalCase)和保持原名
- Lombok 支持:Java 生成可选择 @Data、@AllArgsConstructor、@NoArgsConstructor 注解
- 自动生成:停止输入 0.5 秒后自动触发转换
- COMMENT 提取:MySQL 模式自动提取字段注释作为代码注释
- 嵌套结构:JSON 模式支持深层嵌套对象和数组的类型推导
使用示例
示例1:MySQL DDL 转 TypeScript
输入:
CREATE TABLE user_info (
id INT PRIMARY KEY COMMENT '用户ID',
user_name VARCHAR(100) NOT NULL COMMENT '用户名',
created_at DATETIME COMMENT '创建时间'
);
输出:
export interface UserInfo {
/** 用户ID */
id: number;
/** 用户名 */
userName: string;
/** 创建时间 */
createdAt: Date;
}
示例2:JSON 转 Java POJO(Lombok)
输入:
{"userId": 101, "name": "张三", "tags": ["dev"]}
输出(带 Lombok 注解的 Java 类,包含嵌套类型定义)
常见问题
Q: 支持 MySQL 以外的数据库吗?
A: 目前主要针对 MySQL 的 CREATE TABLE 语法进行了优化。但大多数 SQL 数据库的 DDL 语法类似,PostgreSQL、MariaDB 等的标准 DDL 通常也能正确解析。如果遇到解析失败,可以尝试简化 DDL 语句。
Q: JSON 模式支持多深嵌套?
A: 支持任意深度的嵌套对象和数组。每个嵌套对象都会生成独立的类型定义(TypeScript 接口或 Java 内部类),数组元素的类型也会自动推导。
Q: MySQL 类型映射规则是什么?
A: INT → Integer/number,BIGINT → Long/number,VARCHAR/TEXT/CHAR → String/string,DATETIME/TIMESTAMP → LocalDateTime/Date,DATE → LocalDate/Date,DECIMAL → BigDecimal/number,BOOLEAN/TINYINT(1) → Boolean/boolean。未识别的类型默认映射为 String/string。
Q: 生成的代码可以直接复制到项目中吗?
A: 可以。生成的代码是标准的 TypeScript 接口或 Java POJO,可以直接复制使用。Java 代码的包名默认为 com.example.entity,你可能需要修改为自己的包名。
Q: 我的数据会上传到服务器吗?
A: 绝对不会。IqsBot 的所有工具都运行在浏览器本地,你的数据库 DDL、JSON 数据和生成的代码都不会上传到任何服务器,完全在本地处理。
Q: 自动生成是实时的吗?
A: 是的。停止输入 0.5 秒后自动触发转换,无需手动点击。你也可以随时点击「生成实体」按钮手动触发。