萌萌妈妈 发表于 2015-1-18 11:15:16

JAVA网页编程之EJB 3.0是Hibernate的克隆吗?

你通过从书的数量和开发周期及运行速度来证明: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的话。

若天明 发表于 2015-1-20 18:34:35

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

变相怪杰 发表于 2015-1-23 21:49:33

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

深爱那片海 发表于 2015-1-31 20:05:56

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

蒙在股里 发表于 2015-2-5 09:48:30

是一种突破用户端机器环境和CPU

愤怒的大鸟 发表于 2015-2-5 19:44:08

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

再现理想 发表于 2015-2-13 05:50:46

是一种使用者不需花费很多时间学习的语言

若相依 发表于 2015-2-18 18:56:17

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

柔情似水 发表于 2015-2-25 05:18:15

是一种将安全性(Security)列为第一优先考虑的语言

山那边是海 发表于 2015-3-7 16:53:56

你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。

金色的骷髅 发表于 2015-3-15 09:48:43

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

精灵巫婆 发表于 2015-3-22 00:05:47

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
页: [1]
查看完整版本: JAVA网页编程之EJB 3.0是Hibernate的克隆吗?