文章目录
- 【IDEA使用指南】使用Hibernate框架的Java项目,如何通过数据库表自动生成实体模型?
- 步骤1:找到并打开“Persistence”工具栏。
- 步骤2:找到并打开“Import Database Schema” 窗口。
- 步骤3:配置数据源信息
- 步骤4:查看自动生成的实体模型。
【IDEA使用指南】使用Hibernate框架的Java项目,如何通过数据库表自动生成实体模型?
步骤1:找到并打开“Persistence”工具栏。
如下图所示,找到 “View -> Tool Windows -> Persistence”,点击“Persistence”。
步骤2:找到并打开“Import Database Schema” 窗口。
在开发工具左下角会弹出持久化配置的工具栏“Persistence”,如下图所示。单击之后有一个弹框,找到弹框中的项目名称(如本例项目名称为 first-hibernate-project),然后右键依次选择“Generate Persistence Mapping -> By Database Schema”,即可打开 “Import Database Schema” 窗口。
备注:
上图中如果 “Choose Data Source” 没有选项可以选择,说明尚未配置连接数据源,可以先参考文章进行配置:【IDEA使用指南】如何将 IDEA 开发工具作为可视化工具来操作数据库?
配置完成之后,如果不知道如何回到上图“Import Database Schema”窗口的操作界面,可以参考文章:
【IDEA使用指南】使用Hibernate框架的Java项目,如何找到并打开 “Import Database Schema”窗口?
步骤3:配置数据源信息
在“Import Database Schema” 窗口配置数据源信息。配置信息包括选择数据库、配置对应的包、选择对应的数据表,如下图所示。
配置完成后,点击右下角的“OK”按钮,会弹出提示框,如下图所示。直接点击“Yes”按钮。
步骤4:查看自动生成的实体模型。
可以看到,IDEA 开发工具自动生成了数据表对应的实体模型,如下图所示。
附录
生成的实体模型(TblAccountEntity)如下:
package com.hibernate.helloworld; import javax.persistence.*; import java.util.Objects; /** * @author: shipleyleo * @create: 2023-05-20 16:38:11 */ @Entity @Table(name = "tbl_account", schema = "hibernate_test", catalog = "") public class TblAccountEntity { private int id; private String name; private Double money; @Id @Column(name = "id") public int getId() { return id; } public void setId(int id) { this.id = id; } @Basic @Column(name = "name") public String getName() { return name; } public void setName(String name) { this.name = name; } @Basic @Column(name = "money") public Double getMoney() { return money; } public void setMoney(Double money) { this.money = money; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; TblAccountEntity that = (TblAccountEntity) o; return id == that.id && Objects.equals(name, that.name) && Objects.equals(money, that.money); } @Override public int hashCode() { return Objects.hash(id, name, money); } }
对应的 数据表(tbl_account)定义如下:
CREATE TABLE `tbl_account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `money` double DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;