原文地址:http://blog.csdn.net/wangpeng047/article/details/6877720
做项目必然要先进行数据库表设计,然后根据数据库设计建立实体类(VO),这是理所当然的,但是到公司里做项目后,让我认识到,没有说既进行完数据库设计后还要再“自己”建立一变VO。意思是,在项目设计时,要么根据需求分析建立实体类,由正向生成数据库表;要么就先进行数据库表设计,再逆向生成实体类。没有说进行完任意一方的设计后再去花时间去自己匹配建立另一方的设计。
原因是:
1. 1.5倍工作量,浪费时间。(时间对公司来说很重要)
2. 无法保证两边映射一致。因为两边都是自己设计的,那么就需要人为保证映射关系统一,会有隐患。
3. 开发、维护上都不利。因为如果任意一方因某些原因需要改用,那么经常要两边都要改,这样的话映射不一致的可能性不仅更大,而且效率低下。而如果利用正逆向工程的话,则很容易解决。
所以,因项目原因我便研究了下由数据库逆向生成Hibernate实体类的方法。
在Myeclipse中,正逆向工程操作比较简单,而如果是eclipse的话,会比较麻烦,因为必须要先配置下Hibernate环境(同理如果要生成其他持久化层框架的实体类,也需要先配置)。
有关eclipse配置Hibernate环境的方法这里就不叙述了,上网搜吧,我给提供个参考链接:
http://www.cnblogs.com/yeing/p/3770609.html
那么下面讲述正题:如何从数据库逆向生成Hibernate实体类
1. 首先,要在eclipse中采用自带的数据库管理器(Data Management),连通你的数据库:
然后选择数据库,这里用的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按钮
最终生成效果如下:
【转】自己手动安装hibernate tools for eclipse(Hibernate反向工程)
用过myeclipse的人都知道,myeclipse有集成一个hibernate的可以根据数据库表自动生成mapping映射(xml
或annotation)以及java的pojo类的工具。其实hibernate官方网站就有提供一个这样的工具,当然,现在的
名字叫做jboss tools,而hibernate tools只是其中的一小部分。
对于像我这样的对myeclipse日渐臃肿而无法接受的人而言,使用eclipseEE是一个不错的选择,现在我们就
可以在eclipseEE上自己手动安装该插件。我的eclipse是当前最新版本,解压缩完才200多M(对比Myeclipse
当前最新版8.5安装完要占1G的空间~···)
下面开始安装hibernate tools的安装:
1、进入这个页面http://jboss.org/tools/download/stable/3_1_GA.htmlJBoss Tools 3.1.1.GA Stable Release这是当前最新版本下载地址,由于本人只是需要hibernate tools,这里就不下载其余的部分了。选择hibernate tools 14.75M 3.3.1.v201006011046R-H111-GA ,进行下载
2、下载完之后解压缩后得到两个文件夹,features和plugins,剪切到 eclipse\MyPlugins\Hibernatetools\,当然,eclipse下是没有MyPlugins\Hibernatetools这个目录的,需要自己新建,当然你也可以自己随意命名,不过下一步中要使用到该目录,故最好目录名不要有中文,且不要有空格。(这些步骤跟以往link方式安装eclipse插件是一样的,有安装过应该都能自己搞定)
3、在eclipse目录新建目录links (如果已经存在就不用新建),在该目录内新建文件hibernatetools.link,内容为:path=D:/Program Files/eclipse/MyPlugins/Hibernatetools 我这里使用的是绝对路径,大家也可以使用相对路径。
4、重新启动eclipse,在
file --》new --》Other ,看到如下hibernate配置项就是已经安装成功