一. JPA简介
1. JPA概念
JPA是Sun官方提出的Java持久化规范,是Java Persistence API的简称,中文名‘Java持久层API’,它本质上是一种ORM规范。
JPA通过 JDK 5.0 的 注解或XML 两种形式来描述 ‘对象–关系表’ 的映射关系,并将运行期的实体对象持久化到数据库中。
2. JPA出现的原因
Sun引入 JPA 规范是出于两个原因:
-
- 简化现有Java EE和Java SE的开发工作;
-
- Sun希望整合ORM技术,实现天下归一。
也就是说,Sun提出JPA规范的目的就是想以官方身份来统一各种ORM框架的规范,包括著名的Hibernate、TopLink等。这样就可以避免开发者为了使用Hibernate,要学习一套ORM框架;为了使用TopLink框架,又要再学习一套ORM框架,免去了重复学习的过程!
3. JPA涵盖的技术
JPA的总体思想和现有的Hibernate、TopLink、JDO、Mybatis等ORM框架大体一致。
总的来说,JPA包括以下3方面的技术:
(1).ORM映射元数据
JPA支持XML和JDK 5.0中的注解两种形式,通过元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。
(2).JPA的API
用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。
(3).查询语言
通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。
4. JPA与其他ORM框架的关系
JPA的本质是一种ORM规范(不是ORM框架,因为JPA并未提供ORM实现,只是制定了规范),而非实现。
它只提供了一些相关的接口,但是这些接口并不能直接使用,JPA的底层需要某种JPA实现,而Hibernate等框架则是对JPA的一种具体实现。
也就是说JPA仅仅是一套规范,不是一套产品, Hibernate, TopLink等都是实现了JPA规范的一套产品。
Hibernate 从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的 JPA(Java Persistence API)兼容认证。
所以JPA和Hibernate之间的关系,可以简单的理解为JPA是标准接口,Hibernate是实现,他们之间并不是对标的关系,下图可以表明他们之间的关系。