[Java] JPA 是什么?

阅读时间: 10分钟

JPA
全称是Java Persistence API是一个标準规範及接口(API)来实现ORM(object-relational mapping)框架,JPA通过注解(annotation) [如:@Entity、@Table、@Column等注解] 或XML描述物件-关係表的对映关係,并将执行期的实体物件持久化到资料库中。

JPA的出现有两个原因:
1,简化现有Java EE和Java SE应用的物件持久化的开发工作;
2,Sun希望整合对ORM技术,实现持久化领域的统一。
JPA不是一种框架,而是一个标準规範。而要使用JPA的功能就需要Provider来配合,而Provider就是各种ORM框架。
如下图所示:
在JPA底下其实有各种ORM框的选择,可按项目的情况选择合适的框(例如:hibernate)。
http://img2.58codes.com/2024/20119569C63wJpbWPq.jpg

JPA已经被广泛採用,已经成为O/R持久化企业标準。
JPA是独立于SQL ,基于JDBC之上的抽象层。所有类和注解都在javax.persistence包中。

JPA的优势

标準化
JPA 是 JCP 组织发布的 Java EE 标準之一,因此任何声称符合 JPA 标準的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。

容器级特性的支持
JPA框架中支持大数据集、事务、併发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。

简单方便
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何限制,只需要使用 javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。

查询能力
JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关係数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。

高级特性
JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的複杂关係,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关係数据库的持久化。

参考文章/网站/书本:

什么是JPAJPA(Java持久层API)基础入门

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章