SQL转实体类
免费在线SQL到实体类转换工具,无需安装。将CREATE TABLE语句转换为C#或Java类。
关于 SQL to Entity
解析 CREATE TABLE 语句,并生成可供 ORM 直接使用的 C# 或 Java 实体类。它会提取表名、每个字段的名称/类型/是否可空/是否主键,将 SQL 类型映射到目标语言类型,跳过 CONSTRAINT/PRIMARY KEY/FOREIGN KEY/INDEX/CHECK 子句,并为属性加上相应的数据注解或 JPA 注解。
使用方法
1. 将 CREATE TABLE 语句粘贴到 SQL 输入框。 2. 选择 C# 或 Java 作为目标语言。 3. 点击转换,在输出框中生成实体类。 4. 使用复制按钮复制生成的类。
生成的注解与类型映射
C#:在主键列上生成 [Key],在非空值类型属性上生成 [Required](string/byte[] 会跳过),属性名采用 PascalCase,并提供丰富的类型映射(int、long、decimal、bool、DateTime、Guid、byte[] 等)。Java:生成 @Entity/@Table(name=...),在主键上添加 @Id,每个字段都添加 @Column(name=..., nullable=...),私有字段采用 camelCase,并提供完整的 getter/setter 方法对。SQL 类型在查表前会先去除长度与括号以进行规范化。
▶支持哪些 SQL 方言?
支持任何将列定义放在括号内的 CREATE TABLE。方括号标识符([Name])、反引号、双引号,以及 VARCHAR(50) 之类的长度声明都可被兼容,CONSTRAINT/PRIMARY KEY/FOREIGN KEY/INDEX/KEY/CHECK 子句会被跳过。
▶未知的 SQL 类型如何处理?
内置映射中不存在的类型会默认映射为 string(C#)或 String(Java)。在查表前会先去除长度部分,因此 VARCHAR(255) 会被视为 VARCHAR,并映射到 String。
▶为什么 string 属性上没有 [Required]?
在 C# 输出中,[Required] 仅对非空值类型生成。string 和 byte[] 等引用类型会被跳过,因为 .NET 运行时是通过编译器注解而非数据注解来处理非空引用类型的。
▶Java 输出是否包含 getter 和 setter?
包含。每个映射列都会生成一个带 @Column 注解的私有 camelCase 字段,以及对应的公有 getPascalCase()/setPascalCase() 方法对,因此该类可直接被 Hibernate 或 Spring Data 使用。
如果这个工具对你有帮助的话,请考虑请我喝杯咖啡。
请给我买杯咖啡吧。