JPA(一):初步了解

       说到JPA,大家可能没有Hibernate听起来那么熟悉,那我就通过一张图让大家了解一下,什么是JPA。下图是JPA在系统架构中的作用:

JPA(一):初步了解_第1张图片

      由以上图片我们可以得出两个结论:首先JPA的主要作用就是持久化操作;其次JPA只是一种规范,它需要一种实现,正如上图显示的,HibernateoPenJPA等等。简单些,可以说JPA只是一套接口,本身不能完成任何事情。


      知道什么是JPA之后,我们就要说一说我们为什么倾向于使用JPA了。它的优势主要有以下三点:


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

      (2)使用简单。

      注解方式(不同于其他的配置文件);相信大部分人都感受并使用过Hibernate,令人印象什么的就是一个Java实体对象必须要对应一个xml文件,方可持久化到数据库中。而JPA则使用注解定义Java对象与关系数据库之间的映射。

      (3)规范标准化。

      目前已经有很多持久化框架实现JPA标准,使用了JPA的系统可自由更换框架。

 


      差不多清楚什么是JPA,以及我们为什么使用JPA了吧。接下来我们就来说一说让初学者最迷糊的一件事情,就是EJBJPA的关系


      虽然没有使用过EJB2.X,但是通过查阅资料(大部分相关书籍还是讲解的EJB2.X),我们可以知道,EJB2.X有三种类型的Bean,分别是会话Bean、实体Bean和消息驱动Bean

      但是随着EJB3规范的推出,EJB中的实体Bean逐渐被JPA规范所替代,这也正是为什么JPA的规范包含在EJB3的规范中的原因。但有一点值得我们注意,那就是JPA不仅能够在EJB环境中使用,也能在J2SE的环境中使用,相对于EJB2.X中的实体Bean,使用的范围更加广阔了。


      听了上面那么多介绍不知道大家了解没有EJBJPA的关系,如果不了解,没有关系,我再简单一点说:JPA虽然出自EJB3,但其使用的范围却大于EJB3,不仅可用在JavaEE的环境中,也可以用在JavaSE的环境中。如下图所示:

JPA(一):初步了解_第2张图片

 

      通过以上三点的讲解,什么是JPAJPA的优势以及JPAEJB的关系,相信大家对于JPA已经有了一个最宏观的认识,接下来我们就要一步一步慢慢深入,发现JPA的内在之美了。

你可能感兴趣的:(JPA(一):初步了解)