工具简介
SQL 转实体类是工具派推出的一款面向后端与全栈开发者的代码生成工具:只要把数据库的 CREATE TABLE 建表语句粘贴进去,就能自动解析出表名、字段名、字段类型、主键与是否可为空,并一键生成 Java、TypeScript、Python、Go、C# 五种语言的实体类 / 接口代码。无论是 MySQL、PostgreSQL、SQL Server 还是 SQLite 的建表语句都可以直接粘贴,支持一次解析多张表、批量生成多个实体。生成过程在浏览器本地完成解析,打开即用、无需安装,还自带一份示例 SQL,新手也能零门槛上手。
功能亮点
- 五种目标语言:同一个 SQL 可生成 Java 实体类、TypeScript 接口(interface)、Python 类、Go 结构体(struct)、C# 实体类,切换下拉框即可实时切换输出语言。
- 智能类型映射:按 SQL 字段类型自动映射目标语言类型,例如
BIGINT→Long/int64/long,DECIMAL→BigDecimal/decimal,DATETIME/TIMESTAMP→Date/time.Time/DateTime/datetime,VARCHAR/TEXT→String/string/str,免去手工查表。 - 多表批量解析:一次性粘贴多个
CREATE TABLE语句,会按顺序生成对应的多个实体类,建库脚本可以直接整段丢进来。 - 识别主键与可空性:自动识别
PRIMARY KEY和NOT NULL约束——TypeScript 中可空字段自动加?,Go 中可空字段生成指针类型(如*int),C# 中生成可空类型(如int?)。 - 可选生成注解 / 标签:勾选后,Java 生成
@Id、@Column(name = "...")注解,Go 生成gorm:"column:...;primaryKey"标签,C# 生成[Column("...")]特性,直接对接 JPA / GORM / EF Core 等 ORM 框架。 - 自动驼峰 / 帕斯卡命名:下划线字段名(如
user_id、created_at)自动转为userId(Java/TS/Python 驼峰)或UserId(Go/C# 帕斯卡),符合各语言命名规范。 - 一键复制与下载:生成结果可一键复制到剪贴板,也可下载为对应扩展名的源码文件(
.java/.ts/.py/.go/.cs),直接放进项目。
参数说明
| 参数 | 说明 | 默认值 / 取值范围 |
|---|---|---|
| SQL 建表语句 | 左侧输入框,粘贴 CREATE TABLE 语句,支持多张表批量粘贴,支持 -- 和 /* */ 注释 |
默认已载入 users / orders 两张表的示例 SQL |
| 目标语言 | 生成代码的目标语言 | Java(默认)/ TypeScript / Python / Go / C# |
| 生成注解 / 标签 | 勾选后输出 ORM 映射注解:Java 加 @Id/@Column,Go 加 gorm 标签,C# 加 [Column] 特性 |
默认不勾选 |
| 加载示例 | 按钮,将输入框内容重置为内置示例 SQL | 点击生效 |
| 清空 | 按钮,清空输入框、生成结果与错误提示 | 点击生效 |
| 生成实体类 | 主按钮,解析 SQL 并生成实体代码,输入为空时禁用 | 无输入时不可点击 |
| 复制 / 下载 | 结果区按钮,复制到剪贴板或下载为 entities.<扩展名> 文件 |
有生成结果后可用 |
| 刷新额度 | 结果区按钮,刷新当前账号的剩余免费额度 | 点击生效 |
使用步骤
- 打开工具页面:左侧是 SQL 输入区与生成选项,右侧是生成结果区,页面顶部显示工具名称和当前账号的免费额度,登录后即可使用。

粘贴建表语句:把数据库导出的
CREATE TABLE语句粘贴到左侧「SQL 建表语句」输入框。没有现成语句时,先点右上角「加载示例」看看内置的 users、orders 两张表演示效果;想重来时点「清空」。选择目标语言:在「目标语言」下拉框中选择 Java、TypeScript、Python、Go 或 C#,默认是 Java。
按需勾选注解(可选):如果项目使用 JPA / MyBatis-Plus、GORM 或 EF Core 等 ORM 框架,勾选「生成注解 / 标签」,生成的代码会带上字段映射注解,省去手工添加;只要纯 POJO / 纯结构体则保持不勾选。
点击「生成实体类」:工具会校验输入——为空时提示「请输入 SQL 建表语句」,解析不到建表语句时提示「未解析到有效的 CREATE TABLE 语句」;解析成功后右侧结果区立即显示生成的代码,多张表会生成多个实体。
复制或下载结果:确认结果后点「复制」粘贴到 IDE,或点「下载」得到
entities.java/entities.ts/entities.py/entities.go/entities.cs文件,扩展名随目标语言自动匹配。
使用技巧
- 整段建库脚本直接粘贴:解析器会跳过
PRIMARY KEY(...)、KEY、INDEX、CONSTRAINT、FOREIGN KEY等约束行,也会自动去掉--和/* */注释,所以从数据库工具导出的完整 DDL 脚本可以原样粘贴,无需手工清理。 - 善用类型映射规则:想让某个字段生成字符串类型,就用
VARCHAR/TEXT/JSON;想生成大数用BIGINT,金额用DECIMAL会自动映射为BigDecimal/decimal等高精度类型。 - 可空性要标对:加上
NOT NULL的字段在 TypeScript 中不带?、在 Go/C# 中不生成指针 / 可空类型,所以建表语句的约束写得越规范,生成的实体越贴合业务。 - Go 项目记得勾选注解:勾选后会自动生成
gorm:"column:user_id;primaryKey"这样的标签,直接可以被 GORM 识别;同时工具会在用到时间类型时自动补上import "time"。 - C# 项目同理:勾选注解后会自动添加
using System.ComponentModel.DataAnnotations.Schema;引用,用到DateTime时也会自动补using System;,生成的文件基本可以直接编译。 - 字段命名用下划线风格:工具会把
created_at这类 snake_case 字段自动转成各语言惯例的命名(createdAt/CreatedAt),所以数据库保持下划线命名即可,不需要为了代码风格改库表设计。
常见问题
Q1:支持哪些数据库的建表语句?
只要符合标准 CREATE TABLE 表名 (...) 语法即可,MySQL、PostgreSQL、SQL Server、SQLite 的常用写法都支持,包括带反引号 / 引号的表名和字段名、IF NOT EXISTS、ENGINE、CHARSET、COMMENT 等后缀。
Q2:为什么有些字段没有出现在生成结果里?
以 PRIMARY KEY(...)、UNIQUE(、KEY、INDEX、CONSTRAINT、FOREIGN KEY 开头的约束行会被当作表级约束跳过,这是正常行为;如果某个普通字段也没解析出来,检查它是否是 字段名 类型 的标准格式(类型可带括号,如 VARCHAR(64))。
Q3:生成的 Java 类为什么没有 getter/setter?
生成结果中字段后附有 // getters and setters... 占位注释,具体方法建议用 IDE(如 IntelliJ 的 Generate)或 Lombok 的 @Data 注解自动生成,比工具硬编码更灵活。
Q4:SQL 里的注释会影响生成吗?
不会。解析前会自动移除 -- 单行注释和 /* */ 块注释,带注释的建表脚本可以直接粘贴。
Q5:可以一次生成多张表的实体吗?
可以。粘贴多个 CREATE TABLE 语句,工具会依次解析并生成多个实体类,按表顺序拼接在同一份输出里,复制或下载一次即可全部带走。
Q6:下载的文件名为什么是 entities.xxx 而不是表名?
下载时按目标语言统一命名为 entities.java / entities.ts / entities.py / entities.go / entities.cs,下载后可以自行重命名或按类名拆分成多个文件。
