EJB之JPA

news/2024/7/3 14:33:59 标签: ejb

         在前一篇文章中大概了解了EJB是什么?那么接下来就进一步介绍一下它与JPA有什么样的关系?及什么是JPAJPA如何用?

一、是什么?

         第一次听说JPA是在EJB视屏中,所以一直感觉他们有不解的渊源。但是经过这一段时间学习和总结发现JPA的作用远远不局限于此。

         JPA是这样定义的:JPA(Java Persistence API)是Sun官方提出的Java持久化规范。为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术。

    那么在这里就简单罗列一下简单的知识点:

    ORM映射元数据

    Java持久化API

    查询语言

         注意:JPA本身不是一个新的产品,而是Java编程中的规范,用语规范现有的ORM技术,它不能取代现有的Hibernate、Toplink等ORM框架,相反,在采用JPA开发时,我们仍将使用到这些ORM框架,只是此时开发出来的应用不再依赖于某个持久化提供商。应用可以在不修改代码的情况下在任何JPA环境下运行,真正做到低耦合、可扩展的程序设计。

二、整体架构?

         下图展示了JPA核心类和JPA接口


三、与EJB的关系

         由于历史的原因,EJB 3与JPA有着藕断丝连的关系。EJB 2.X中,EJB有三种类型的Bean,分别是会话Bean(SessionBean)、实体Bean(Entity Bean)和消息驱动Bean(Message Driven Bean)。

        随着EJB3规范的推出,EJB中的实体Bean(EnityBean)逐渐被JPA规范所替代,这也是为什么JPA的规范会包含在EJB3的规范中的原因

       JPA不仅能够在EJB环境中使用,也能够在J2SE的环境中使用,相对于EJB2.X的实体BEAN,使用的范围更广

       总之,简单的说,JPA虽然出自EJB3,但是其使用的范围却大于EJB3,不仅可以在JavaEE5中,也可以在JavaSE的环境中,如图所示EJB3和JPA的关系。如图:

 

类或接口                                              描述

EntityManagerFactory     这是一个 EntityManager 的工厂类。它创建并管理多个 EntityManager 实例。

EntityManager                       这是一个接口,它管理的持久化操作的对象。它的工作原理类似工厂的查询实例。

Entity                                      实体是持久性对象是存储在数据库中的记录。

EntityTransaction        它与 EntityManager 是一对一的关系。对于每一个 EntityManager ,操作是由 EntityTransaction              类维护。

Persistence                       这个类包含静态方法来获取 EntityManagerFactory 实例。

Query                                     该接口由每个 JPA 供应商,能够获得符合标准的关系对象。

          在上述体系结构中,类和接口之间的关系属于javax.persistence包。下图显示了它们之间的关系。

 

1EntityManagerFactory EntityManager 的关系是1对多。这是一个工厂类 EntityManager 实例。

2EntityManager EntityTransaction 之间的关系是11。对于每个EntityManager 操作,只有一个 ()(3EntityTransaction 实例。

4EntityManager Query 之间的关系是1对多。查询数众多可以使用一个 EntityManager 实例执行。

5EntityManager 实体之间的关系是1对多。一个EntityManager 实例可以管理多个实体。

四、优势

        事实上,JPA并不是一项技术,而是一种标准,因为JPA只是一套接口,本身不能完成任何事情。JPA只是规范了Java持久化的官方标准。JPA有以下几个优点。

    可持久化Java对象。JPA能够直接持久化复杂的Java对象,并能够使用JPQL语言进行复杂的查询。JPQL是JPA专用的查询语言,是类似于SQL的面向对象的查询语言。

    使用简单。JPA使用注释(Annotation)定义Java对象与关系数据库之间的映射,而传统的ORM多使用xml配置文件。JPA使用起来比ORM要方便。使用JPA不用关注底层使用什么数据库。

    规范标准化。JPA是JCP组织发布的,是Java官方规定的统一的API。目前已经有多种框架实现JPA标准。使用了JPA的系统可以自由选择遵循JPA标准的框架,并能够自由更换。

    事务性、大数据量。JPA底层使用关系数据库进行存储,因此具备关系数据库的特点,例如事务性、数据完整性、并发访问、大数据量等。

    与其他持久化技术相比,JPA有很大的技术优势。表列出了JPA与其他持久化技术的比较。

五、总结

         通过对JPA的简单介绍,让我来概括一下吧!JPA就是一个java持久化规范,它简化了现有的持久化工作和整合ORM技术。至于它的实现就在我们的实践中慢慢体会吧!


http://www.niftyadmin.cn/n/1026037.html

相关文章

EJB之客户端访问接口

谈到EJB不得不做的第一个决定是:EJB要支持什么样的客户端?因为不同的客户端其访问方式也将不同,访问的方式也会影响性能,尤其是分布式的系统更要考虑性能,所以我们在综合考虑后一定要择优选择。 这次就来个开门见山&am…

itoo3.1新开始,新起点......

回想itoo3.1,那可谓是前所未有的丰富,无论是管理上还是技术上,都让自己成长了很多。那么接下来就谈谈我学到了什么? 一、管理上 除了在机房收费系统合作版担任过负责人外,这算是第一次带项目吧!所以在刚开…

数据结构基础

备注:之前一直习惯与写Woed保存在本地,久了发现想要翻阅不太方便,所以想到利用博客来记录一些东西,不过还是会记录在本地!!! 博客只是便于自己翻阅而已,这篇算是给自己开一个头&…

诚信胜于生命

一、历史为镜 在我们国家里,纵观历史,目睹现在,关于诚信的佳话不胜枚举。诚信是中华民族优秀品格的标志,也是“立人之道”和“立政之本”的基本准则。早在二千多年前,孔子就把“信”摆到关系国家兴亡的位置&#xff0c…

1.4.7 Schema API

Schema API Schema API允许使用REST API每个集合(collection)(或者单机solr的核(core)).包含了定义字段类型,字段,动态字段,复制字段等.在solr4.2或4.3中,仅仅允许Get(只读)访问,在solr4.4上,新的字段和复制字段可以直接加入到schema中.未来,solr版本将会扩展这个功能,以允许更…

hibernate基本映射

随着对hibernate一步步实践,感觉做一做总结是很有必要的,这样可以让自己的思路更为清晰! 一、知识概括 通过思维导图整体了解下: 二、对应结构图和实现 (一)单向一对一关联映射(one-to-one&…

Android属性动画之ValueAnimation

ValueAnimation是ObjectAnimation类的父类,经过前几天的介绍,相信大家对ObjectAnimation有了 一定的认识,今天就为大家最后介绍一下ValueAnimation,ValueAnimation谷歌提供了更好的过程控制,现在就以一个类计时的小动画…

SharePoint 2013 状态机工作流之日常报销示例

SharePoint 2013 状态机工作流之日常报销示例 原文:SharePoint 2013 状态机工作流之日常报销示例简单介绍下状态机工作流,状态机工作流提供了一系列的状态。工作流从初始状态开始,到终止状态结束。两个状态之间定义行为进行过渡。通常情况下,…