介绍 最近我开始使用Eclipse作为我的开发环境,部分原因是因为在我进行开发的许多平台上都可以使用Eclipse来工作,还有部分原因是因为Eclipse是展示人人皆可作出贡献的开放、可扩展环境的优势的一个极好的例子。我开始研究其他人提供的对Eclipse的扩展。例如,当用到xml文件时,我使用XMLBuddy插件。该插件对于我的工作很有助益。因为最近一直在写Developer's Notebook,所以我很想知道是不是已经有人写了关于Hibernate的插件,事实上,有好几个这样的插件正在开发。在这篇文章中,我们将探索其中之一:Hibernate Synchronizer.
Hibernate Synchronizer 在我找的和Hibernate有关的插件中,Hibernate Synchronizer最令我感兴趣,因为它为我在Developer's Notebook书中采用的以映射为中心的工作流(mapping-centric workflow)提供了最好的支持。(可以用多种方法使用Hibernate,你可能会试试其它一些插件,它们提供的方法可能正是你自己特定环境所要求的)。事实上,当使用Hibernate Synchronizer时,如果你改变了映射文件,你不需要为更新相应的java文件而劳心费神。当你编辑映射文件时,和Eclipse采取的方法类似,该插件自动更新你的java代码。还不止于此,还提供了比Hibernate内建的代码生成工具更多的功能:它为每个映射对象创建一对类( a pair of classes),其中一个是基础类,当你改变映射内容时,它可以随意重写这个类;另一个类作为该基础类的子类,在子类中,你可以添加具体的商业逻辑和另一些代码。使用这个插件生成java代码时,不用象使用Hibernate内置的代码生成工具那样,担心其它代码(如商业逻辑的代码)会在你的眼皮底下消失。
对于以Hibernate影射文档为基础的方法,还有一些其它的好处,Hibernate Synchronizer有一个新编辑器,当编辑这类文件时,为Eclipse添加了智能辅助和自动完成功能。一个比较好的、以DTD驱动的XML编辑器,如以前提及的XMLBuddy,也可以完成部分功能。与此相比,Hibernate Synchronizer利用对影射文档语义的了解,提供了更进一步的功能。例如,提供了对属性和影射关系的可视化显示,创建新元素的向导界面,象以上提及的一样,缺省设置情况下,当你编辑影射文档时,编辑器会自动生成数据访问类(data-access class).
当然还有其它一些功能,在Eclipse的新建(New)菜单中,提供了一个向导,可以用来创建Hibernate配置文件和映射文件,在包资源浏览器(package explorer)和其它一些合适的地方增加了上下文菜单,方便调用和Hibernate相关的功能。
好了,在这些抽象的描述之后,到了开始做实事的时候,当然,这正是你兴趣所在,不然你就不会读这篇文章。怎么安装和使用呢?下边一一解释。
安装 Hibernate Synchronizer可以用Eclipse内置的更新管理器(Update Manager)来安装。对Eclipse 2.1和即将发布的Eclipse 3的用户提供了不同的更新站点。(因为用Eclipse作关键性的工作,我仍使用作为产品发行的2.1版。当我写这篇文章的时候,Eclipse 3已经进入了“候选发布”阶段。我希望当我今夏晚些时候从JavaOne回来时,我可以更新到版本3的产品发行版。提及这个的主要原因是因为我想强调一下,这些指南是以Eclipse 2的角度的来讲解,毫无疑问,一些命令和窗口会在版本3中发生变化,因此,当你使用Eclipse 3时,你应当做一些相应的调整。我印象中Hibernate Synchronizer自己的install instructions是针对Eclipse 3,也许这对你有所帮助。
启动Eclipse,顺次单击帮助(Help) ->软件更新(Software Updates) -> 更新管理器(Update Manager)来打开更新管理器,当安装/更新(Install/Update)透视图打开之后,在功能更新视图(Feature Updates)中用右键单击(如果你用的单键,你需要control-click)。选择新建(New) -> 站点书签(Site Bookmark),如图1中所示。
图 1 在更新管理器中添加Hibernate Synchronizer插件的更新地址 在弹出对话框中,输入适合你的Eclipse版本的插件地址:
?Eclipse 2.1: http://www.binamics.com/hibernatesync/eclipse2.1
?Eclipse 3: http://www.binamics.com/hibernatesync
还需要为新建的书签命名,"Hibernate Synchronizer"就是个很贴切的名字。图2中显示的是在Eclipse 2.1.2中填完所有需要的信息后的对话框。填完之后,你可单击完成(Finish)按钮来完成增加书签。
图 2. Hibernate Synchronizer插件更新站点书签 单击完成(Finish)后,新建的书签就会出现在功能更新(Feature Updates) 视图中,如图3中所示.
图 3. Hibernate Synchronizer站点已经可以使用 为了实际安装该插件,单击该书签左边的三角形符号,然后再次单击在书签下边出现的条目左边的三角形符号,继续这个过程,一直到书签下边出现的条目中出现该插件的图标。单击该条目,就会出现一个可以让你安装的界面,如图4所示。
图 4. 准备开始安装插件 单击Install Now,让Eclipse引导你完成安装(如图5-10).
图 5. 安装Hibernate Synchronizer
图 6. 许可协议 你可以看看下边Trade-Offs部分对许可协议的一些讨论。当你打算在实际的项目中使用该插件时,想必你会仔细研究该协议。我认为也许好一点,不过该插件基于GPL协议,而不是开放源代码,令人迷惑。
7. 选择安装位置,缺省的已经很好了
图 8. 安装没有签名插件时的标准警告
图 9 正在进行安装
图 10. 完成安装 现在已经完成安装,你需要退出,然后重新启动Eclipse以使所做的更改生效。看上边的对话框好像说能够自动重新启动Eclipse。,以我的经验,Eclipse只会退出,还是需要你自己手工重新启动。这可能是Max OS X平台上Eclipse 2.1的一个局限。Eclipse 3已经许诺把对OS X的支持列入第一级别。无论如何,这只是个小问题。如果你需要重新启动Eclipse,现在就可以这样做。安装完之后,接着需要对其对其进行配置,以便在项目中使用。
配置 重新启动Eclipse后,关闭安装/更新透视图。打开一个使用Hibernate的Java工程.如果你已经完成了Developer's Notebook,一书中的例子,那么就有几个目录可供你选择,这里以书中第三章中的例子来说明。第三章是可以在线免费获得的样章,你还可以从该书的站点下载所有例子的源代码。
如果你打算使用其中的一个例子来新建一个Eclipse工程,选择文件(File) ->新建( New )-> 工程(Project),选定工程类型,然后单击下一步(Next),填入该工程名(我填的是"Hibernate Ch3",如图11所示),不要复选使用缺省检查框(Use default),这样你可以告诉Eclipse从哪里找到已经存在的工程目录,单击浏览按钮(Browse)来定位目录。选定工程目录后可以单击完成(Finish)来创建工程。不过,一般情况下我喜欢单击下一步(Next)来复查Eclipse为此工程所作的设置(当然,如果发现有些配置不对,总是可以选择回退来修改这些设置。不过,我总是发现,如果有一个库文件丢失或是其它一些原因,会有非常多的错误和警告信息)。
图 11. 创建一个需要使用Hibernate的新工程 在当前情况下,我的谨慎有点多余。Eclipse准确的算出了目录是如何组织以及是用来干什么的,找到我为使用Hibernate和 HSQLDB 数据库而下载的第三方库(下载和安装的详细过程可以参看书中第一章)。如此聪明的适应能力是Eclipse优点之一。图12显示新工程已经打开,准备好可以用来做实验。从这个图中也可以推断Eclipse不喜欢调整窗口大小使其小到形成合适的屏幕布局。从现在开始,显示的屏幕截图只显示窗口的一部分,而不是完整的窗口。
图 12. 使用Chapter 3例子的工程 下一个需要做的工作是创建一个Hibernate配置文件,提供给Hibernate Synchronizer使用。在src目录中已经有了一个hibernate.properties文件,这是书中例子使用的配置。这里有个问题,坏消息是Hibernate Synchronizer只能使用XML样式的Hibernate配置文件。这样,就需要把hibernate.properties中的内容移植到XML样式的配置文件hibernate.cfg.xml中。好消息是,这正是Hibernate Synchronizer创建配置文件向导第一次大显身手的时候。选择文件(File) ->新建(New) -> 其它(Other),然后在弹出对话框选取刚可用的Hibernate类,选取 Hibernate Configuration File,然后单击下一步(Next).
图13 打开Hibernate配置文件向导 打开向导时,保存文件的位置和在Eclipse中现在选择的文
查看本文来源