Eclipse从数据库逆向生成Hibernate带注解的实体类

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

缘由是:oracle

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

2. 没法保证两边映射一致。由于两边都是本身设计的,那么就须要人为保证映射关系统一,会有隐患。框架

3. 开发、维护上都不利。由于若是任意一方因某些缘由须要改用,那么常常要两边都要改,这样的话映射不一致的可能性不只更大,并且效率低下。而若是利用正逆向工程的话,则很容易解决。eclipse

因此,因项目缘由我便研究了下由数据库逆向生成Hibernate实体类的方法。数据库设计

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

有关eclipse配置Hibernate环境的方法:更新hibernate插件。测试


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

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

 

而后选择数据库,这里用的oracle,而后给个名字,如MyOracle。

点击下图中按钮,新建一个数据库驱动的配置。

选择数据库版本,这里是oracle 10g版本,能够为该配置另起个名字。

而后选择相应数据库版本的jar包。

下面就是依据自身状况填写数据库链接配置了。

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

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

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

2. 生成hibernate实体类

打开Hibernate Configurations窗口。

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

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

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

新建hibernate.properties:

新建hibernate.cfg.xml:

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

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

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

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

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

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

而后弹出以下该窗口,按以下图操做,右击后选择New

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

建立hibernate.reveng.xml:

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

返回后选择Exporters选项卡,勾选Domain code和Hibernate XML Mappings,而后点击Run按钮

最终生成效果以下:

相关文章
相关标签/搜索