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, 其实就是完全重新定义了的EntityBean规范。

JPA作为java中负责关系数据持久化的组件已经完全独立出来成为一个单独的规范,而不再属于Enterprise Java Bean的范畴(EJB更多的是指Stateless/Stateful session bean和Message Driven Bean)。

使用的 Java 的版本决定了实际是否可以应用 JPA。因为JPA 是 EJB 3.0 规范的一部分,而EJB 3.0 规范是 Java EE 5 版本的一部分。如果您未更新到 Java EE 5,则无法使用 JPA。

提供了以pojo编程模型为持久化对象的机制:通过 JDK 5.0 注解或 XML 描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中,下图描述了 JPA 的结构:

1.2.  JPA的产生

Sun引入新的 JPA ORM规范出于两个原因:

?  其一,简化现有JavaEE和 Java SE应用的对象持久化的开发工作:和实体Bean相比,不需要配置文件,提供了更好的开发体验不同于 EJB 3.0,JPA并不是J2EE环境专用,在J2SE的环境中也可以使用(不依赖J2EE容器,是java中的通用API)

?  其二,Sun希望整合ORM技术,统一各种ORM框架的规范,实现天下归一。(目前Hibernate 3.2、TopLink 10.1.3以及OpenJpa都提供了JPA的实现)

1.3.  为什么要使用JPA

1.4.  JPA和Hibernate的关系

JPA是hibernate的一个抽象或者可以理解为接口(就像JDBC和JDBC驱动的关系):JPA是规范:JPA本质上就是一种ORM规范,不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由用用服务器厂商来提供实现。Hibernate 是实现:Hibernate除了作为ORM框架之外,它也是一种JPA实现。

从功能上来说, JPA现在就是Hibernate功能的一个子集。

1.5.  JPA的供应商

JPA 的目标之一是制定一个可以由很多供应商实现的API,目前Hibernate 3.2、TopLink 10.1.3以及OpenJpa都提供了JPA的实现

Hibernate

JPA的始作俑者就是Hibernate的作者,Hibernate 从3.2开始,就开始兼容JPA。

OpenJPA

OpenJPA 是 Apache 组织提供的开源项目,OpenJPA虽然免费,但功能、性能、普及性等方面更加需要加大力度。

TopLink

TopLink以前需要收费,如今开源了。

1.6.  JPA的实现

JPA做为Java EE5里面的新成员,跟jdbc一样就是一接口,具体实现由服务器实现

你选择什么服务器就基本上决定了用哪个JPA实现

n  JBoss就是用hibernate去实现的

n  weblogic是用OpenJPA

n  Oracle是用TopLink

1.7.  JPA的优势

?  标准化     提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。越来越多的提供商期待在不久的将来提供 JPA 实施。

?  对容器级特性的支持     JPA 框架中支持大数据集、事务、并发等容器级事务

?  简单易用,集成方便     JPA的主要目标之一就是提供更加简单的编程模型,在JPA框架下创建实体和创建Java 类一样简单,只需要使用 javax.persistence.Entity进行注释;JPA的框架和接口也都非常简单,

?  可媲美JDBC的查询能力       JPA的查询语言是面向对象的,JPA定义了独特的JPQL,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。

?  支持面向对象的高级特性     JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,最大限度的使用面向对象的模型

1.8.  JPA的缺点

由于非常新,JPA 规范可能还需要进过重要发展才会变得很稳定。

JPA是一个规范而不是一个产品。

需要提供商提供一个实施,才能获得这些基于标准的 API 的优势。

JPA是Hibernate、TopLink,JDO等ORM框架真子集,只提供其中最好的功能,如果应用程序中需要的功能,但是规范中没有提供的功能,则使用供应商特有的API ,移植起来比较麻烦,所以要尽可能地使用JPA API。

1.9.  JPA包括 3方面的技术

?  ORM映射元数据:JPA支持XML和 JDK 5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。

?  JPA的API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的 JDBC和 SQL代码中解脱出来。

?  查询语言:这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的 SQL语句紧密耦合。

时间: 2024-08-06 11:34:10

jpa概述的相关文章

JPA概述以及它和Hibernate之间的关系

http://www.cnblogs.com/Kevin-ZhangCG/p/8996491.html 一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口),它定义一系列的注释.这些注释大体可分为:类级别注释.方法级别注释.字段级别注释.给实体类添加适当的注释可以在程序运行时告诉Hibernate如何将一个实体类保存到数据库中以及如何将数据以对象的形式

15 Spring Data JPA概述

Spring Data JPA 概述 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作.它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率! Spring Data JPA 让我们解脱了DAO层的操作,基本上所有CRUD都可以依赖于它来实现,在实际的工作工程中,推荐使用Spring Data JPA + ORM(如:

JPA的介绍

一.JPA概述 1.JPA是什么? JPA:Java Persistence API:用于对象持久化的 API,JPA是Java EE 5.0 平台标准的 ORM 规范, 使得应用程序以统一的方式访问持久层. 2.JPA和Hibernate的关系. •JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系): –JPA 是规范:JPA 本质上就是一种  ORM 规范,不是ORM 框架 . 因为 JPA 并未提供 ORM 实现, 它只是制订了一些规范,提供了一些编程的 API

学习笔记JPA

转自:http://www.cnblogs.com/holbrook/archive/2012/12/30/2839842.html(觉得写的太好了,就贴在这方便自己回顾) JPA定义了Java ORM及实体操作API的标准.本文摘录了JPA的一些关键信息以备查阅. 如果有hibernate的基础,通过本文也可以快速掌握JPA的基本概念及使用. Table of Contents 1 JPA概述 2 实体生命周期 3 实体关系映射(ORM) 3.1 基本映射 3.2 ID生成策略 3.3 关联关

JPA概要

1 JPA概述 JPA(Java Persistence API,Java持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口. JPA是JSR-220(EJB3.0)规范的一部分,在JSR-220中规定实体对象(EntityBean)由JPA进行支持. 所以JPA不局限于EJB3.0,而是作为POJO持久化的标准规范,可以脱离容器独立运行,开发和测试更加方便. JPA在应用中的位置如下图所示: JPA维护一个Persistence Context(持久化上下文),在持久化

[ SSH框架 ] Hibernate框架学习之四(JPA)

一.JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述 JPA Java Persistence API,是EJB3规范中负责对象持久化的应用程序编程接口(ORM接口),它定义一系列的注释.这些注释大体可分为:类级别注释.方法级别注释.字段级别注释.给实体类添加适当的注释可以在程序运行时告诉Hibernate如何将一个实体类保存到数据库中以及如何将数据以对象的形式从数据库中读取出来. 目前有两种注释方案可以确定对象与表格之间的对应关系:一种是注释实体类的属性字段(字

JPA、SpringData JPA 、Hibernate和Mybatis 的区别和联系

转自<JPA.SpringData JPA .Hibernate和Mybatis 的区别和联系> 一.JPA 概述 1. Java Persistence API(Java 持久层 API):用于对象持久化的 API 2. 作用:使得应用程序以统一的方式访问持久层 3. 前言中提到了 Hibernate,那么JPA 与 Hibernate究竟是什么关系呢: 1)JPA 是 Hibernate 的一个抽象,就像 JDBC 和 JDBC 驱动的关系 2)JPA 是一种 ORM 规范,是 Hiber

02 JPA

JPA概述 JPA的全称是Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范,内部是由一系列的接口和抽象类构成.       JPA通过JDK 5.0注解描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. JPA的优势 1. 标准化 JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在

ORM 规范

JPA 概述 JPA 介绍 JPA 本质上就是一种 ORM 规范,不是 ORM 框架,因为 JPA 并未提供 ORM 实现,它只是制定了一套规范,提供了一些接口,具体实现由 ORM 厂商决定. JPA 包括三方面的技术 ORM 映射元数据 JPA API 查询语言(JPQL) 使用 JPA 持久化对象的步骤 创建 EntityMangerFactory 通过 EntityManagerFactory 获得 EntityManager 实例 开始事务 执行持久化操作 提交事务 关闭 EntityM