|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你通过从书的数量和开发周期及运行速度来证明:net和ruby要比java简单。 择要Sun的EJB3.0标准正处于其最初的"冲刺"阶段,很多公司都在为遵守这一标准而劳碌着。这个EJB标准最新版本所供应的浩瀚长处中对照凸起确当属其数据库功效,可是一些开辟职员感应,这个标准仅仅是Hibernate耐久性存储引擎的一个"克隆"版。真的吗?本文恰是想会商这一成绩。
理论证实,Hibernate是针关于Java言语所创立的最优异的耐久化存储引擎之一。至今,我还明晰地记得第一次利用Hibernate事情的情形。事先,我们已有了一种现成的耐久化存储引擎,可是这个引擎将损耗大批的体系资本而且从未真正准确事情过。使人惊异的是,Hibernate"刹时"办理了我们的耐久化存储成绩!这真是一个"天赐之物"。不觉间,工夫疾速促进到明天。EJB3.0又浮出水面,而且不久我们就要企图把我们以后的EJB2.x服务器向这个更高版本晋级了。但是,细心地剖析一下EJB3.0中所作的耐久性存储变更,有人大概会感应惊奇-这不是来自于Hibernate的一个"克隆"品吗?岂非Sun认真"偷盗"了来自于Hibernate的计划吗?我的回覆是,情形要比这些庞大很多。
1、EJB3.0
EJB3.0必需完成的主要方针之一是,要使之成为更加有效和更容易于利用的开辟工具。Sun公司的LindaDeMichiel熟悉到,为了乐成完成这一方针,EJB3.0必需要基于开辟职员明天正在利用的现有库;不然,它将会招致一种坚苦的晋级操纵而且大概会引不起充足的器重。因而,来自于Oracle,JBoss,Apache,BEA,Novell,Google的成员和别的方面的专家都被约请介入制定这一标准。这个小组的方针是,临盆一种标准-可以使得EJB更容易于开辟而且还要创立一种便于开辟职员可以简单地完成晋级的耐久性存储尺度。
当这个小组入手下手开辟EJB3.0标准时,他们很快熟悉到,个中良多特性应当在功效上与一切的次要的供给商和库坚持分歧。我们将鄙人面的几节中会商这些特性。
(一)EntityManager
这个EntityManager卖力处置一个事件。在JDO中,它被称作耐久性存储办理器,而在Hibernate中称它为一个会话。在GlassFish工程中,EntityManager被作以下形貌:
实在,一个EntityManager实例与一个耐久性存储高低文相干联。一个耐久性存储高低文是一组实体实例,个中的任何一个耐久性实体都是独一的一个实体实例。在该耐久性存储高低文中,实体实例及其性命周期都是可被办理的。这个接口界说了用于与耐久性存储高低文举行交互的办法。EntityManagerAPI用于创立和删除耐久性实体实例-经由过程其主键查找实体和查询实体。
这个可由一个给定的EntityManager实例办理的实体汇合是经由过程一个耐久性存储单位举行界说的。一个耐久性存储单位界说了一切类的汇合,这些类是相接洽的或由使用程序加以分组,而且它们必需共存于它们到单个数据库的映照中。
(二)定名查询
一个定名查询是一个预界说的查询,它被付与一个名字,如许它能够在今后经由过程该名字加以存取。用数据库术语来讲,定名查询被称作存储历程。当分离本机查询时(见下一节),数据库查询应当长短常轻松的。
(三)本机查询
不是利用具有良多限定性的实体查询言语,本机查询同意间接从EJB中周全地利用SQL言语。如今,我们有大概间接在数据库上挪用count(),max()和别的功效而不用支付别的周折。
(四)回调监听器
回调监听器,是一种事务监听器,或用数据库术语来讲是,是一种触发器。它们撑持当一个事务产生时举行代码挪用。
(五)离开/从头依靠对象
可以离开开一个EntityManager的把持局限而又可以从头前往而被延续化存储,这在EJB3.0版本之前是没法完成的。在之前,为了完成这一目标,必需把来自于一个对象的值必需被复制到一个POJO(一般Java对象)中,然后被再往复兴制。
在EJB3.0之前,我老是利用值-对象而且把来自于EJB的值复制到一个POJO中;然后,利用在前端利用该对象。假如该POJO中的一个值被改动,它将不能不被"推回"到该EJB;然后,该值被复制返来。这类"凌乱"形态如今已不复存在了。一个对象乃至可以完整分开JVM而且在今后某个时代前往返来而且被从头依靠。这类改动所带来的效力是不克不及被低估的。
(六)O/R映照范例
可以把一个EJB中的字段间接映照到一个数据库中的列上是EJB3.0之前也是很难完成的。这一功效完成一向不那末使人中意,而且良多第三方开辟工具都几回再三推延对这类功效的撑持。我最喜好的xDoclet的一个特性是,它可以界说在我的EJB中每个耐久性字段对应哪一种SQL范例。借助于EJB3.0和注解手艺,我们不再必要利用一种第三方工具。
2、EJB3.0对象
值得注重的是,企业JavaBean如今被称为POJO。跟着注解手艺的呈现,javabean不再必要接口、home和形貌符撑持文件。仅仅这个特性就为EJB3.0博得了多量开辟团队的喜爱。
如今,既然企业对象不再被锁定到使用程序服务器内,那末我们不再必要把它们复制进和复制出POJO,如许就同意不用把使用程序服务器后端和前端区分得那末严厉,从而使开辟职员可以更简单地显现和编纂存储于EJB中的数据。我们很快就会看到这些变更对xDoclet所发生的风趣影响。
3、结论
只管毫无疑问,EJB3.0基于Hibernate,可是,现实上它是基于一切的顶级的对象/干系映照工具。看来,这个工具并不是这些工具复杂"修正"版,而现实上是由Sun制造的又一部出色的"影戏"。不用闪开发职员进修一种"全新的但仍是功效不异的工具",开辟职员只必要轻松地花一些工夫就能够晋级到新版的EJB3.0中,由于EJB3.0恰是基于他们已懂得和喜好的工具创立的。
关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。 |
|