JDBC的规范
JPA(JavaPersistence
API)
:
用于
对象持久化
的
API。
Java
EE5.0
平台标准的
ORM
规范,使得应用程序以统一的方式访问持久层。
JPA和Hibernate的关系
•
J
PA
是
hibernate
的一个抽象
(
就像
JDBC
和
JDBC
驱动的关系
):
–
JPA
是规范
:
JPA
本质上就是一种
ORM
规范,不是
ORM
框架
——
因为
JPA
并未提供
ORM
实现,它只是制订了一些规范,提供了一些编程
的
API
接
口,但具体实现则
由
ORM
厂商提供实现
–
Hibernate
是实现
:
Hibernate
除了作为
ORM
框架之外,它也是一种
JPA
实现
•
从功能上来说,
JPA
是
Hibernate
功能
的一个子集
JPA
的目标之一是
制定一个可以由很多供应商实现
的
API
,目前
Hibernate
3.2+
、
TopLink
10.1+
以及
OpenJPA
都
提供
了
JPA
的
实现。
JPA的优势
•标准化: 提供相同的API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。
•简单易用,集成方便: JPA 的主要目标之一就是提供更加简单的编程模型,在JPA 框架下创建实体和创建Java 类一样简单,只需要使用javax.persistence.Entity进行注释;JPA的框架和接口也都非常简单,
•可媲美JDBC的查询能力: JPA的查询语言是面向对象的,JPA定义了独特的JPQL,而且能够支持批量更新和修改、JOIN、GROUPBY、HAVING等通常只有SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
•
支持面向对象的高级
特性
:JPA
中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系
,
最大限度的使用面向对象的模型
JPA 包括3方面的技术
•
ORM
映射
元数据
:
JPA
支持
XML
和
JDK5.0
注解
两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中。
•
JPA
的
API
:用来操作实体对象,执行
CRUD
操作,框架在
后台完成
所有的事情,开发者从繁琐的
JDBC
和
SQL
代码中解脱出来。
•
查询语
言(
JPQL
)
:
这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免
程序和具体的
SQL
紧密
耦合。