电脑生活派
柔彩主题三 · 更轻盈的阅读体验

实体类生成方法:让数据库开发不再重复搬砖

发布时间:2025-12-14 18:40:24 阅读:292 次

做项目时,你是不是也经常对着数据表一条条字段手动创建实体?字段少还好说,碰上几十个字段的表,光是 private String xxx; 就能写到手抽筋。其实这事儿早就有更聪明的解法——实体类生成方法,能把重复劳动一键搞定。

为啥要自动生成实体类?

举个例子,你在做一个电商后台,商品表有 id、name、price、stock、category_id、create_time 等十几个字段。如果每个表都手动写 getter、setter、toString,不仅耗时,还容易出错。更别提后期改字段名还得同步改一堆代码。这时候,用工具自动生成实体类,效率直接翻倍。

常见的生成方式有哪些?

最常用的几种方法包括:使用 MyBatis Generator、JPA 的注解配合 IDE 插件、或者自己写脚本从数据库元信息提取字段。

比如用 MyBatis Generator,配置好数据库连接和表名,运行一下就能生成对应的实体类、Mapper 接口和 XML 文件。配置文件长这样:

<?xml version="1.0" encoding="UTF-8"?>
<generatorConfiguration>
  <context id="test" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
        connectionURL="jdbc:mysql://localhost:3306/shop"
        userId="root" password="123456"/>
    <javaModelGenerator targetPackage="com.example.entity" targetProject="src/main/java"/>
    <table tableName="product" domainObjectName="Product"/>
  </context>
</generatorConfiguration>

运行之后,Product.java 就自动生成了,字段、注解、基本方法全都有。

IDE 插件也能快速搞定

如果你用的是 IntelliJ IDEA,可以装一个叫 “JPA Buddy” 或者 “Easy Code” 的插件。连上数据库,选中一张表,右键“Generate Entity”,几秒钟就出结果。支持自定义模板,比如要不要加 Lombok 注解,要不要实现 Serializable,都可以提前设好。

比如你想用 @Data 简化代码,生成的类会是这样:

import lombok.Data;

@Data
public class Product {
    private Long id;
    private String name;
    private Double price;
    private Integer stock;
    private Long categoryId;
    private java.util.Date createTime;
}

没了满屏的 getter/setter,看起来清爽多了。

自己写脚本也不难

有些团队喜欢定制化流程,可以直接查 information_schema.columns 表,把字段名、类型、注释都捞出来,用模板引擎(比如 Freemarker 或 Velocity)拼成 Java 类。这种方式灵活度高,适合统一规范管理。

比如执行这条 SQL:

SELECT COLUMN_NAME, DATA_TYPE, COLUMN_COMMENT 
FROM information_schema.COLUMNS 
WHERE TABLE_SCHEMA = 'shop' AND TABLE_NAME = 'product';

拿到数据后,套个模板就能输出标准实体类。下次换表,改个表名就行。

现在新项目几乎没人手写实体类了。花半小时搭个生成流程,后面省下的时间够喝好几杯咖啡。工具就在那儿,用不用,差别真的挺大。