`
mylftnt
  • 浏览: 29277 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

在Eclipse中使用Hibernate插件

 
阅读更多

http://industry.ccidnet.com/art/322/20060111/412535_1.html

编辑映射
HibernateSynchronizer的一个主要吸引力就在于它为映射文档提供的专业化的编辑器。可以配置这个编辑器,以便只要保存文件就自动重新生成相关数据对象,但是这只是一个锦上添花的功能;即使不打算使用该插件的代码生成器,您也可能希望使用这个编辑器。它为您提供映射文档元素的智能完成功能,以及一个图形化的大纲视图,可以在这个视图中操纵这些元素。

但是,如果从Developer's Notebook一书中的下载源代码开始,就至少得有一项技巧才可以让编辑器工作。在下载的文件中,映射文档的扩展名为“.hbm.xml”,而只有以“.hbm”结尾的文件才能调用编辑器。理论上,可以在Eclipse中配置扩展名映射,以便使具有这两种扩展名的文件都能使用插件的映射文档编辑器,但是我无法使其生效,而且我注意到支持论坛上有人面临着与我相同的问题。所以,至少目前最好的做法就是重命名文件。(如果您坚持使用基于Ant的标准代码生成,请确保更新build.xml中的codegen目标以使用新的扩展名。)

在我把Track.hbm.xml重命名为Track.hbm之后,它在PackageExplorer中的图标就更新为Hibernate徽标,而默认的编辑器则变为插件的编辑器。由于某种原因,其他的HibernateSynchronizer选项对于其中任意一种扩展名都是可用的,但是编辑器只对较短的版本可用。

Hibernate映射文档(扩展名为“.hbm”)的上下文菜单

编辑器为映射文档中添加的所有元素都提供上下文相关的自动完成支持。屏幕截图无法真正捕捉到该特性的深度和有效性。我强烈建议您安装插件并使用它。您很快就会看到它在处理映射文档方面是多么有用。


映射文档编辑器中的完成辅助功能

大纲视图提供了一个关于类层次结构、被映射的元素、指定查询以及映射文档中的各种元素的图形化视图,还提供一个菜单,其中有一些向导可以帮助创建新的属性。

  

  

映射编辑器的大纲视图和“Add property”向导

编辑器中的上下文菜单还提供一个Format SourceCode选项,可以使用它来整理和重新构造文档。这个编辑器中已经有了很多灵巧和有用的特性,看它们如何发展也是一件有趣的事情。惟一使我感到不满的是(并不是什么大问题),当完成XML属性时,这个编辑器用来帮助管理引号的方法与JDT在Java代码中使用的方法完全不同。在它们之间来回切换会把人弄迷糊。(您需要一些时间适应JDT的工作方式,但是一旦您开始信任它,它就会变得魔力无穷。)

生成数据库模式
尽管我的第一印象是所有内容都来自映射文档,但是HibernateSynchronizer目前不支持从映射文档创建或更新数据库模式。支持论坛上已经提出了相关的请求,所以如果将来看到这些特性,我肯定不会吃惊,因为提供这类支持并不很困难。目前来说,如果要从映射文档开发数据库,就必须使用像Hibernate: A Developer'sNotebook书中这种Ant驱动之类的方法。此外,下面描述的Hibernator插件支持在Eclipse中进行模式更新。我可能要研究一下是否可以同时安装这两种插件。

我希望本文能够让您清楚地了解该插件所提供的功能。无论如何,我没有涵盖它的所有功能,所以如果您有兴趣,可以去下载它然后自己进行探索。

权衡
毫无疑问,可以使用HibernateSynchronizer来完成一些灵巧的工作。是否要在我自己的Hibernate项目中使用它呢?这样做有优点也有缺点,很可能直到实际采用Hibernate来代替我们正在使用的自己开发的(且过分简单的)轻量级O/R工具时,我才会做出决定。这是一次意义相当重大的改动,而我们把这次改动推迟到了由于其他原因进行架构变换的时候。下面是对我的决定起着重要作用的一些因素。

正如我们在安装小节中所谈到的那样,在许可证方面还存在着一点问题。插件的论坛中有此方面的讨论。当前的许可证基于对GNUGPL的定制修改,这次修改删除了所有源代码共享方面的条款,但是试图保留“copyleft”保护的其他方面。关于这样做的合法性仍然存在一些问题,而作者正在寻求另一种解决办法。很清楚,目的是要保护插件,而不是阻止其他任何项目使用该插件生成代码,但是有必要仔细阅读当前的许可证,看一看其目的是否已经达到,或者您是否仍然冒着很大的风险。

同一讨论表明,作者原来是以开源的形式发布插件的,但是又临时收回了这一决定,因为他觉得它还不够完美以用作一个优秀的范例。接着,他与一些莽撞的人通过一些非常不愉快的邮件,这使他不愿再共享源代码。当然,他有权决定是否与我们共享源代码。该插件对于整个世界来说是一份大礼,而作者并不欠我们什么。但是我希望他能与其他用户进行足够的正面交流,这样就能坚定他原来共享源代码的想法。我真的认为能够看到我使用的工具的源代码是一件很有价值的事情,不仅因为这是一个很好的学习机会,还因为这意味着,如果需要的话我可以立刻修复一些小问题。作者在解决用户的问题方面始终很热心,响应也很快,但是一个人无法维持一个社区,因为我们都有繁忙、筋疲力尽和心烦意乱的时候。

HibernateSynchronizer使用它自己的模板和机制来生成数据访问类,这既有优点也有缺点。优点是可以获得比Hibernate的“标准”代码生成工具更多的功能。可以使用数据对象的一个自动生成的子类,并在该数据对象中嵌入业务逻辑,而无需担心重新生成访问代码时这些业务逻辑会被改写,这也是一个不错的特性。插件生成的使很多简单的场景更简单的类还提供了其他的优点。

另一方面,这还意味着,当Hibernate平台增加一些新的特性或者做了改动之后,HibernateSynchronizer生成的代码就有些滞后于Hibernate了。在对Hibernate不常使用的模式的支持方面,插件代码也存在bug:它的用户群很小,一个人就可以让它保持更新。您可以在讨论论坛上找到这种现象的证据。

和很多事情一样,潜在的优点是否超过风险要由您来决定。即使不使用代码生成器,您也会发现映射编辑器非常有用。如果您只想使用编辑器的自动完成和辅助功能,可以关掉自动同步选项。

如果您使用过该插件,并且发现它很有用,我建议您联系其作者,表达您的谢意,并考虑捐出一些资金来帮助支持它的未来发展。

其他插件
迄今为止,我还找到了另外两个也提供Eclipse中的Hibernate支持的插件。(如果您还知道有其他的插件,或者将来遇到了这样的插件,我很愿意知道它们。)或许将来我还会撰写有关这些插件的文章。

HiberClipse
HiberClipse插件看起来也是一种非常有用的工具。它似乎适用于数据库驱动的工作流,在这个工作流中,已经有了一个数据库模式,而您想构建一个Hibernate映射文件和Java类来使用该模式。这是一种很常见的场景,如果您发现自己面临着这样的难题,我强烈推荐您使用这个插件。它提供了一项非常酷的特性:在Eclipse中为所使用的数据库提供图形化的“关系视图”。(我应该指出,如果您想从一个现有的数据库模式开始,HibernateSynchronizer也会有所帮助的。它的New Mapping FileWizard可以连接到您的数据库,并基于所发现的内容构建映射文件。)


Hibernate Synchronizer的映射向导

Hibernator
最后一个,Hibernator似乎倾向于另一个方向,即,从Java代码开始生成简单的Hibernate映射文档,然后让您从映射文档构建(或更新)数据库模式。它还提供在Eclipse中运行数据库查询的能力。在这3种插件中,它所处的开发阶段似乎最早,但是已经值得关注了,特别是因为它的开发者是Hibernate开发团队的成员。
分享到:
评论

相关推荐

    Eclipse上使用Hibernate

    本文将指导您在 Eclipse 环境中使用 Hibernate,包括下载和安装 Hibernate、配置 Hibernate、生成实体类和 DAO 类、添加映射资源等步骤。 下载和安装 Hibernate 首先,您需要下载 Hibernate 并将其添加到项目中。...

    在Eclipse中使用Hibernate.pdf

    ### 在Eclipse中使用Hibernate的关键知识点 #### 一、引言 随着开源技术的发展与普及,集成开发环境(IDE)的选择对于提升开发效率至关重要。Eclipse作为一款知名的跨平台开源IDE,凭借其丰富的插件生态获得了众多...

    eclipse中的hibernate插件

    在Eclipse中,通过安装Hibernate插件,我们可以方便地进行数据持久层的开发。 该"eclipse中的hibernate插件"提供了以下主要功能和知识点: 1. **自动配置**:Eclipse Hibernate插件能够帮助开发者自动生成...

    Hibernate_Tools_for_Eclipse插件的安装和使用

    Hibernate_Tools_for_Eclipse插件的安装和使用 Hibernate_Tools_for_Eclipse插件是 Eclipse 中的一个插件,用于支持 Hibernate 开发。它提供了许多有用的功能,如Hibernate配置文件的创建、实体类的生成、SQL语句...

    在Eclipse中使用hibernate

    在Eclipse中使用Hibernate是一个非常高效且便捷的方式,特别是对于那些使用Java进行软件开发并热衷于ORM(对象关系映射)技术的开发者而言。Hibernate作为一个流行的数据持久化框架,可以将Java对象直接映射到数据库...

    eclipse4.4适用的hibernate插件

    对应于eclipse4.4版本的hibernate插件,把两个压缩包解压在一起后生成两个文件夹:features和plugins,把里面的文件分别拷贝到eclipse4.4版本的相应目录下,即可

    离线与联网在Eclipse中安装Hibernate Tools

    在 Eclipse 中安装 Hibernate Tools 是一种非常有用的插件,该插件可以帮助我们简化 Hibernate 的开发过程,提供了一些项目向导、mapping 文件、annotation 和 JPA 等功能。下面我们将详细介绍如何在 Eclipse 中安装...

    eclipse3.4插件-Hibernate

    总之,Eclipse3.4中的Hibernate插件极大地提升了开发效率,使得在Java项目中使用Hibernate变得更加直观和高效。通过正确安装和配置,你可以充分利用这个强大的工具集来简化数据库相关的开发任务。

    Eclipse Hibernate Synchronizer插件操作数据库

    此外,Eclipse Hibernate Synchronizer还支持生成HBM XML文件,这是Hibernate早期版本中使用的映射文件格式。尽管现在大多数项目倾向于使用注解方式,但某些场景下,XML文件可能仍然有其优势。 在开发过程中,你...

    eclipse安装hibernate的jboss tools插件

    这个过程是开发者为了提高在Eclipse中使用Hibernate框架进行开发的便利性,通过添加插件来实现对Hibernate的图形化管理和调试功能。 描述中的“安装hibernate的jboss tools插件”简洁地概述了操作目标,即安装与...

    Eclipse快速上手Hibernate

    首先,我们需要在Eclipse中安装Hibernate插件。你可以通过Eclipse的内置软件更新功能来查找并安装Hibernate相关的插件,如"Hibernate Tools"。进入`Help` -> `Eclipse Marketplace` 或者 `Install New Software`,...

    Eclipse Hibernate插件

    Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

    eclipse_hibernate3.3IDE插件

    这款Eclipse插件是为了更好地集成Hibernate框架到Eclipse集成开发环境中,提供了一套便捷的工具集,使得在Eclipse中开发和调试Hibernate应用变得更为高效。 **插件兼容性** 该插件声明完全适用于Eclipse 3.7版本。...

    Eclipse 在线配置 Hibernate Tools

    Eclipse 是一个广泛使用的集成开发环境(IDE),尤其在Java编程领域中,它提供了丰富的功能支持。Hibernate 是一个流行的持久化框架,用于简化数据库与Java对象之间的交互。Hibernate Tools 是一组 Eclipse 插件,...

    利用Eclipse开发Hibernate应用程序

    此外,HibernateSyn插件在项目中的使用还包括对Hibernate的配置文件进行更新,添加对新生成的POJO类文件的相关配置。在UserInfo.hbm文件上选择"Synchronizer—Add"即可完成这项操作。通过这种方式,HibernateSyn插件...

    eclipse luna hibernate tool 安装插件

    在Eclipse Luna中安装Hibernate Tools时,有时会出现已显示插件已安装,但在视图中找不到的情况。这通常是由于安装路径不正确或者插件没有正确更新导致的。为了解决这个问题,你可以按照以下步骤操作: 1. 首先,你...

    eclipse 下的hibernate tools

    标题“Eclipse下的Hibernate Tools”指的是在Eclipse集成开发环境中使用的Hibernate插件工具。这个工具集使得开发者能够更方便地进行Hibernate对象关系映射(ORM)框架的开发工作,包括模型类的生成、HQL查询的编写...

Global site tag (gtag.js) - Google Analytics