初识EJB3.0的答疑总结(二)

  
  最近发现接触新东西时,疑问越来越多。其实这并不是坏事情,反而是件好兆头,至少说明你学的,接触的多了。
  
  肚子里有墨,等你学新东西时,肯定会与你肚子的东西产生碰撞,肯定会纳闷,这个与刚才那个有啥区别,有啥关系。等你有问题时,千万别放弃,肯定会有解决你疑问的方案,这样你才清晰,踏实的走下去。若是没有疑问,那就另当别论啦。
 
  也许刚开始没有疑问,很正常,因为你脑子里没有这方面或很少的知识,这个时候,可以选择沉默,可以选择前进。但是在你前进的过程中,肯定会有疑问,比如开始接触struts1,后期接触struts2时,肯定会与第一个对比。
   
  在接触EJB时,脑子里有很多疑问。用一句形容此时的心情:不懂的太多了。
  当时,正如圆圈法则,圈内是自己懂的,圈外是不知道的事情,圈圈越大,发现自己懂得也少。庄子也曾说过“吾生也有涯,而知也无涯”。

  那转回到我们的总结上。
  第一:EJB包括哪几种类型。
       sessionBean:用于实现业务逻辑,它可以是有状态的,也可以是无状态的。每当客户端请求时,容器就会选择一个Session Bean来为客户端服务。Session Bean可以直接访问数据库,但更多时候,它会通过Entity Bean实现数据访问。   
      MessageDriven Bean是EJB2.0中引入的新的企业Bean,它基于JMS消息,只能接收客户端发送的JMS消息然后处理。MDB实际上是一个异步的无状态 Session Bean,客户端调用MDB后无需等待,立刻返回,MDB将异步处理客户请求。这适合于需要异步处理请求的场合,比如订单处理,这样就能避免客户端长时间的等待一个方法调用直到返回结果。
      Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。

 第二:EJB3.0和JPA关系?
      JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
      网上有种解答:
      随着EJB3规范的推出,EJB中的实体Bean(Enity Bean)逐渐被JPA规范所替代,这也是为什么JPA的规范会包含在EJB3的规范中的原因.
      但JPA不仅能够在EJB环境中使用,也能够在J2SE的环境中使用,相对于EJB2.X的实体BEAN,使用的范围更广.
      总之,简单的说,JPA虽然出自EJB3,但是其使用的范围却大于EJB3,不仅可以在JavaEE5中,也可以在JavaSE的环境中,如图所示EJB3和JPA的关系.
      
      
 第三:JPA和hibernate关系?
       上图证实EJB3.0和JPA关系中,但是我个人还是理解EJB中的实体bean实现了JPA规范。
       写过实体bean的,会发现实体bean的写法和hibernate有几分颇像,并且目的思路都一样,只不过有个别的注释不同而已。
       使用持久化对象,是不依赖具体的框架。
       
       从上图可以看出jpa与hibernate的关系。JPA是持久化的规范;而hibernate是实现持久化的产品。

 第四:hibernate annotation中为何会有ejb-persistence.jar
      其实,在第三个问题中已经阐述,只不过再次强调下。hibernate annotation是hibernate的一个子项目。并且使用过Hibernate-annotation其实也是在实体上使用注释,而不是像Hibernate中使用xml映射文件来持久化实体对象。但是Hibernate annotation也是具体的实现,也是实现了jpa规范。

 第五:JPA的优点?
       首先:标准化。提供了统一的接口。
       其次:JPA能够支持并发、事务、大数据量问题的解决,不仅仅适合小型系统。
       还有:易上手,方便。主要配置相应的注释即可。
       并且:查询能力。定义了持久化查询语言。JPQL,其实在EJB3.0中类似ql、类似Hibernate中的hql语句。

 总结:
      接下来会进入具体的学习,比如EJB3.0持久化实体的生命周期、以及相应的操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值