eclipse从数据库逆向生成Hibernate实体类

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

     做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO。意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表;要么就先进行数据库表设计,再逆向生成实体类。没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计。

原因是:

1. 1.5倍工作量,浪费时间。(时间对公司来说很重要)

2. 无法保证两边映射一致。因为两边都是自己设计的,那么就需要人为保证映射关系统一,会有隐患。

3. 开发、维护上都不利。因为如果任意一方因某些原因需要改用,那么经常要两边都要改,这样的话映射不一致的可能性不仅更大,而且效率低下。而如果利用正逆向工程的话,则很容易解决。

所以,因项目原因我便研究了下由数据库逆向生成Hibernate实体类的方法。

在Myeclipse中,正逆向工程操作比较简单,而如果是eclipse的话,会比较麻烦,因为必须要先配置下Hibernate环境(同理如果要生成其他持久化层框架的实体类,也需要先配置)。

 

那么下面讲述正题:如何从数据库逆向生成Hibernate实体类

1. 首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库:

 1336014946_5884.jpg


QQ截图20160803105505.jpg

 然后选择数据库,这里用的mysql,然后给个名字,如mysql。

1336014970_9837.jpg


QQ截图20160803202155.jpg

接下来,完善Properties下的General选项卡内容,同样是连接数据库的信息,配置完后点击Test Connection按钮测试是否能连通数据库。

QQ截图20160803202616.jpg

然后点击Next,再确认无误后,单击Finish。

之后Data Management就会出现mysql的数据库资源管理器,发生变化如下说明数据库配置成功。

QQ截图20160803202841.jpg


2. 生成hibernate实体类

打开Hibernate Configurations窗口。
QQ截图20160803203038.jpg

然后在打开窗口右击,点击Add Configuration...

1336015190_8735.jpg


Project选择项目(test),Database connection选择刚刚配好的mysql(其实可以直接选择[Hibernate configured connection]通过Hibernate配置文件连接数据库,但是通过这种方式并不一定能成功,单独采用Data Management也同样不一定成功,原因不是很清楚,所以最后采用Data Management + Hibernate配置文件的结合方式,这样就比较保险啦)

QQ截图20160803203623.jpg


在项目(test)内任意位置新建Hibernate的相关配置文件(hibernate.properties和hibernate.cfg.xml)。

新建hibernate.properties:

1336015204_4994.jpg


新建hibernate.cfg.xml:

1336015211_3077.jpg


QQ截图20160803204232.jpg


返回Edit Configuration窗体后,选择Common选项卡中Encoding选择UTF-8,其他默认即可,点击OK按钮

1336015226_6175.jpg


这样Hibernate Configuration就添加了一个配置信息,如下图

QQ截图20160803204554.jpg


在eclipse菜单栏中的工具栏的空白处右击鼠标,选择Customize Perspective

1336015238_6563.jpg


弹出如下窗体后,依照图中选择Command Groups Availability选项卡,勾选Hibernate Code Generation,然后单击确定。

1336015244_3747.jpg


之后工具栏就会出现相应按钮。

1336015252_8810.jpg


单击该按钮,并选择图中Hibernate Code Generation Configurations

1336015258_5950.jpg


然后弹出如下该窗口,按如下图操作,右击后选择New

1336015264_2693.jpg


弹出如下窗体,选择输出的项目地址,填写包名,勾选Reverse engineer from JDBC Connection,然后创建hibernate.reveng.xml

QQ截图20160803205741.jpg


创建hibernate.reveng.xml:

QQ截图20160803210136.jpg


Console configuration选择刚刚配置好的hibernate,点击Refresh按钮,就会出现数据库的全部schema,找到你的数据库,然后将其Include到右侧窗口里,然后点击Finish按钮完成hibernate.reveng.xml的创建。

QQ截图20160803210509.jpg


返回后选择Exporters选项卡,勾选这些,然后点击Run按钮

QQ截图20160803205751.jpg


最终即可生成。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——TestStu.java
hibernate正向生成数据库表以及配置——TestStu.java
20 1
|
6天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Teacher.hbm.xml
hibernate正向生成数据库表以及配置——Teacher.hbm.xml
18 1
|
6天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Teacher.java
hibernate正向生成数据库表以及配置——Teacher.java
14 0
|
6天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Student.java
hibernate正向生成数据库表以及配置——Student.java
12 0
|
6天前
|
Java 数据库连接
hibernate注解实体类(Dept.java)
hibernate注解实体类(Dept.java)
18 1
|
6天前
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Dept实体类和对应的配置信息
14 1
|
11月前
|
Java 数据库 Spring
spring data jpa 框架在实体类中添加非数据库字段的属性
Spring-data-jpa表实体的字段和表的字段是一一对应的。比如,那么,如果我在查询时,想在表字段的基础上添加几个返回的字段,怎么办?
304 0
|
6天前
|
SQL Java 数据库连接
使用Hibernate进行数据库持久化操作
【4月更文挑战第15天】Hibernate 是一款开源 ORM 框架,简化数据库操作,通过映射将 Java 对象与表交互。核心接口包括 SessionFactory、Session、Transaction、Query 和 Criteria。使用 Hibernate 需添加依赖,配置 hibernate.cfg.xml 文件,设置数据库信息,并创建实体类及映射文件。
|
6天前
|
Java 数据库连接
hibernate注解实体类(Emp.java)
hibernate注解实体类(Emp.java)
18 1
|
6天前
|
JavaScript Java 数据库连接
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
struts+hibernate+oracle+easyui实现lazyout组件的简单案例——Emp实体类和对应的配置信息
24 0

推荐镜像

更多