开发者社区> 似水的流年> 正文

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

简介:
+关注继续查看

     做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(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


最终即可生成。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MyBatis Generator myeclipse 生成 mybatis
在下载好的插件包解压,找到generator-master\eclipse\UpdateSite目录下的feauresj和plugins放在myeclipse的相应目录下 以下为配置文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfigura
2489 0
DTCC 2019 | 阿里云TSDB: 教你解锁时序时空数据库的种种黑科技 | 今日云栖夜读
在本刊开篇文章中,讲述了:阿里云TSDB是阿里自研的一种高性能,低成本,稳定可靠的在线时序时空数据库产品。该产品统一了阿里巴巴集团90%以上的APM数据和事件型数据的存储和计算,并在广泛应用于外部的物联网,工业制造,电力,化工以及IT运维等行业。
3181 0
MyEclipse 从数据库反向生成Hibernate实体类
         第一个大步骤 window-->open Perspective-->MyEclipse Java Persistence 进行了上面的 操作后会出现一个视图DB Brower:MyEclipse Derby,点击右键新建一个在出现的面板中,driver templat...
902 0
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 28 章 监控数据库活动_28.1. 标准 Unix 工具
28.1. 标准 Unix 工具 在大部分 Unix 平台上,PostgreSQL会修改由ps报告的命令标题,这样个体服务器进程可以被标识。一个显示样例是 $ ps auxww | grep ^postgres postgres 15551 0.
1202 0
Hibernate4 (面向对象的数据库操作)
JPA,java persistance api,java持久层接口,即与数据库打交道的一些接口。实现交给各个厂商去实现。ORM,Object/Relation Mapping,对象/关系数据库映射。面向对象的数据库操作,底层仍是sql语句。 获得 hibernate的maven依赖。 <dependencies> <dependency> &l
2192 0
+关注
似水的流年
开发工程师O(∩_∩)O
136
文章
385
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载