Hibernate Tools for Eclipse Plugins 的安装和使用,这段时间事情比较多一直没有写博客,现在事情忙完了,公司的书柜里有一堆关于Hibernate、Struts和Spring的书,翻了翻发现书中的内容基本上都过时,我喜欢从官方网站上看资料学习最新的技术,这次是我阅读了Hibernate Tools的官方Documents后根据自己的实践总结的。

安装Hibernate插件

https://download.jboss.org/jbosstools/updates/development

https://download.jboss.org/jbosstools/updates/stable/

启动Eclipse

3.4.1 选择HelpSoftware Updates,打开Available Software选项卡,然后单击Add Sites 分别输入JBoos的工具和Hibernate工具在线安装地址,然后选择安装Hibernate ToolsJboos Tools Development Release,如图示

等待安装成功,安装过程因要下载不少Jar包,视你的网络速度不同,需要的时间不同,安装完毕Eclipse将提示你重新启动,重启Eclipse安装完成。(注意:先安装Hibernate Tools成功后,再安装Jboos Tools Development Release)

新建一个工程MyHibernate,然后然后选择FileNewHibernate Configuration File(cfg.xml),打开创建Hibernate配置向导,我这里配置了一个SQL Server2000数据库,选中Create a console configuration 复选项,以此配置文件创建Hibernate控制台配置。

创建Hibernate Console Configuration向导有MainOptionClasspathMappingsCommon五个选项卡,如果你在工程中已经引入了JDBC驱动则,直接点击Finish完成即可,以后在完成其他配置。

完成后,你就可以在Hibernate Configuration视图窗口看到配置项,已经链接到数据,并把你数据库中的表列出来,如果在这一步你没有成功的话,请检查你是否以正确安装的Hibernate ToolsJBoos Tools这个很重要;另外如果提示找不到JDBC驱动的话,说明你工程的classpath中没有JDBC驱动jar包,加载正确的驱动即可。

如果你不能看到上图所示的Hibernate Configurations窗口,说明你没有打开这个View,选择WindowsShow ViewOther,然后选择Hibernate Configurations即可打开这个窗口,窗口的位置无关紧要,你喜欢放在那里就把他托过去。

下面将介绍如何使用Hibernate Code Generation来产生数据库表映射Java对象,首先要在数据库中创建表,并设置号字段名和主键(主键很重要,关于主键的选择建议你使用与业务无关的ID作为主键);打开Hibernate视图找到Hibernate运行图标下的Hibernate Code Generation Configurations,如果找不到这个图标说明没有在Hibernate视图下。

配置一个新的配置项,输入配置项的名称MyHibernateCode,选择Hibernate Configuration(即已配好的Hibernate控制台配置),在Output directory中输入反向代码输出目录(注意这个目录一般只需项目的源代码src),然后复选Reverse engineer from JDBC connection,在Package中输入包名(你要存放到src下那个包中),最后单击SetupCreate New打开Reverse engineer配置向导,选择配置存储位置(我放到了src目录下),最后选择要反向工程的表。

如果你的Database schema中没有项目,查看你选择Console configuration是否正确,单击下面“Refresh”应该就出来了,最后单击Finish完成返回,

然后单击Exporters选项卡,选择导出项目,这里选择了Domain code(.java) Hibernate XML Mappings(.hbm.xml),因为使用的JDK版本较高因此复选Use Java 5 syntax项。RefreshCommon项可不进行设置,最后单击Run运行,产生代码。

产生的代码和配置文件,如图示;代码自动产生后还需要你根据自己的业务逻辑检查一下,并按你的DAO架构完成,Hibernate Tools到这里已经帮你完成的大量编码工作。