Eclipse下配置和使用Hibernate Tools

Hibernate Tools可以通过访问已经建立好的数据库以反向工程方式生成POJO文件。
今天就来说一下如何使用Hibernate Tools来生成POJO。

1、首先,要去Hibernate的网站下载这个工具包。一个大约14M的ZIP压缩文件。
http://jaist.dl.sourceforge.net/sourceforge/jboss/HibernateTools-3.2.4.Beta1-R200810311334.zip

2、解压缩下载好的文件,释放出features和plugins这两个文件夹和其中的内容。完成后将这两个文件夹复制到Eclipse的目录下(这两个文件夹在Eclipse中是默认存在的,直接复制就行了)。

3、到这步为止HibernateTools的安装就算结束了,下面开始配置和具体使用。一开始选择工程下的SRC目录,然后右键New->Other->Hibernate->Hibernate Configuration File(cfg.xml),在弹出的窗口中选择Next ,进入到下面的选项中。
[img]/upload/attachment/89555/46d0f99e-c548-33c3-821b-817c954b7f9a.jpg[/img]

注意,这个地方有几项是一定要填写的。他们分别是Database dialect(数据库方言)、Driver class(数据库驱动)、Connection URL(链接字符串)以及Username和Password(访问数据库的用户名和密码)。

上图图中使用的是MySQL5数据库的配置,vane是我机器中已经创建好的数据库。使用其他数据库的时候会略有不同。

填好之后选择Finish。

4、选择Eclipse的下拉菜单Window->Show View->Other->Hibernate->Hibernate Configurations,现在就可以查看Hibernate的配置窗口了。在窗口中单击右键Add Configuration,出现Edit Configuration窗口。
[img]/upload/attachment/89551/dd51bb53-6703-36b2-85f3-ddb4bdf0998e.jpg[/img]
这里需要给Configuration起个名字,然后在Project项目中选择当前工程。

单击OK。

5、如果上一步的配置是正确的,那么在Hibernate的配置窗口中就可以看见Hibernate访问数据库得到的数据信息。
[img]/upload/attachment/89553/21dc63a5-17ff-39e4-9be4-3b98b72c83a8.jpg[/img]
没有访问成功的话会弹出对话框,可以根据提示信息来判断自己的工程中出现了什么问题。大多数情况是由于工程中没有MySQL的驱动造成的。

如果再有什么解决不了的问题,可以给我留言,我会跟您一起研究的。

驱动包的官方下载地址:
http://dev.mysql.com/downloads/connector/j/5.1.html

6、第5步成功的话就可以进行最后一步生成Code的工作了,多么激动人心的时刻啊o(∩_∩)o…

不着急,这里我们先做一个准备工作。右键单击Eclipse的工具条,选择Customize Perspective->Commands->Hibernate Code Generation,单击OK。这样工具栏中就增加了Hibernate的图标。

左键单击图标右边的下箭头,在下拉菜单中选择Hibernate Code Generation Configurations,
在弹出的窗口中进行最后的设置。

Main标签下的Output directory选择的是生成文件的位置,选择到src目录即可。Reverse engineer from JDBC Connection这个单选框很重要,选上就是了。Package选择的是生成POJO的包名,可以根据需求自己起名字。reveng.xml这个地方选择Setup->Create new->工程名->Next->Refresh->include->Finish,搞定!(reveng可不是变形金刚~)

Exporters标签下选择您要生成的文件,其中Domain code(.java)是一定要选的,第二项Hibernate XML Mappings(.hbm.xml)是生成配置文件的,如果您的工程中决定使用Annotation的话可以忽略这一项。

最后一步,点击Run,这样就得到您想要的POJO代码了。觉得不满意自己再慢慢修改吧,也可以写一个格式化代码的程序,这个下次再说吧。

PS:第一次写技术博客,可能有很多地方讲得不清楚或者有地方说错了,希望大家给我一一指出,我会尽快改正的!

发表评论

邮箱地址不会被公开。 必填项已用*标注

昵称 *