JPA(一):初步了解

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

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

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

(1)可持久化Java对象。

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

(2)使用简单。

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

(3)规范标准化。

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

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

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

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

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

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

时间: 2024-10-28 11:43:04

JPA(一):初步了解的相关文章

JPA EntitManager初体验

EntityManager,顾名思义,实体管理器,负责管理Entity对象,对Entity的操作包括添加,删除,修改和查询,都是通过实体管理器来实现的.它由EntityManagerFactory所创建.EntityManagerFactory,作为EntityManager的工厂,包含有当前O-R映射的元数据信息,每个EntityManagerFactory,可称为一个持久化单元(PersistenceUnit),每个持久化单元可认为是一个数据源的映射 PersistenceContext,称

JPA使用入门

JPA能干什么?我在前面一遍文章<初步了解JPA>基本描述了.不过你不需要点击回去再看.这里简单的再提一下JPA的功能,就是:(1)实现“对象-关系”映射:(2)对象持久化到数据库:(3)对象查询. JPA要怎么用,我们直接入手来跑起一个JPA的demo,我这里是采用Hibernate的JPA实现. (1)创建一个普通java工程. (2)导入必要的包. 从Hibernate官方下载一个基本包,我这里下载后得到的是hibernate-release-5.0.4.Final.zip.解压后可以文

Hibernate技术(一)--Hibernate初步

Hibernate初步 ORM:在编写程序时,处理数据采用面向对象的方式,而保存数据却以关系型数据库的方式,因此需要一种能在两者之间进行转换的机制.这种机制称为ORM,ORM保存了对象和关系型数据库表的映射信息. Hibernate框架搭建 Hibernate3JAR包引入: antlr-2.7.6.jar 语言转换工具,实现HQL到SQL的转换 commons-collections-3.1.jar dom4j-1.6.1.jar 读写XML文件 hibernate3.jar 核心类库 hib

SpringBoot系列教程JPA之update使用姿势

原文: 190623-SpringBoot系列教程JPA之update使用姿势 上面两篇博文拉开了jpa使用姿势的面纱一角,接下来我们继续往下扯,数据插入db之后,并不是说就一层不变了,就好比我在银行开了户,当然是准备往里面存钱了,有存就有取(特别是当下银行利率这么低还不如买比特币屯着,截止19年6月22日,btc已经突破1.1w$,可惜没钱买??)这就是我们今天的主题,数据更新--update的使用姿势 通过本篇博文,您至少可以选到 save() 直接根据id来修改记录 利用jpl 实现查询修

Spring Data JPA实战视频教程

视频大纲 JPA入门 Spring Data JPA入门 Repository的定义 查询方法的命名策略 JPQL查询,结果映射 Named Query,Named Native Query 排序,分页 JPA Criteria查询 Querydsl查询 Query by Example 一对一,一对多,多对一,多对多 @EnableJpaRepositories 注解 自定义.扩展Repository 实体的生命周期 审计 乐观锁,悲观锁 集成 OpenJPA 查询批注 缓存 事务 Sprin

初步了解CPU

了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. 一.总述 先从计算机的结构说起,在现代计算机中,CPU是核心,常常被比喻为人的大脑.现在的计算机都为“冯·诺依曼机”,“冯诺依曼机”的一个显著的特点就是由运算器.存储器.控制器.输入设备和输出设备组成.CPU是运算器和控制器合起来的统称,因为运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大

zerglurker的C语言教程004——指针初步讲解

在上次的教程里面,我提到了指针. 针对指针,这次我将简单的讲讲,后面我还会讲到--那个时候你应该有了相当的基础. 首先,先讲讲指针类型. 任何类型关键字后面加一个*符号,就会变成指针类型. 比如: char → char* 字符指针 int → int* 整数指针 double→double* 双精度指针 甚至还可以这样: char*→char** 字符指针的指针类型 →char*** 字符指针的指针的指针类型- 指针本质上是一个内存地址值,该内存地址上存放的是相关类型的数值.但是void*指针

jpa概述

1.1.  JPA 是什么 JavaPersistence API,用于对象持久化的API,是Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层. JPA 是EJB3 EntityBean,是一套从EJB3.0核心标准中分离出来的独立的标准文档,J2EE 4规范中最为人所熟悉的用来处理数据持久的Entity Bean,在Java EE5中被推到重来,取而代之的是java开发的通用持久化规范Java Persistence API 1.0, 其实就是完全重新定义了

JPA初识

Java Persistence API 从 EJB 技术可以开始应用时起,对其在实际应用中的可用性就一直存在怀疑.在我看来,产生这种现象最重要的两个原因是复杂性和资源密集性.结果,随后出现了比 EJB 更简单.具有更小资源空间的框架(比如 Spring 和 Hibernate),并且更快流行开来.为了说明这一点,我们注意到 EJB 3.0 规范的方向相对以前出现了一个主要的转变.作为 JSR 220 的一部分,该规范提供了类似 Plain Old Java Object (POJO) 支持.D