Jpa:基础(一)

1.介绍

1.1 JPA是什么?

  • Java Persistence API:用于对象持久化的 API
  • Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层
  • JPA本身是一种规范,它的本质是一种ORM规范(不是ORM框架,因为JPA并未提供ORM实现,只是制定了规范)因为JPA是一种规范,所以,只是提供了一些相关的接口,但是接口并不能直接使用,JPA底层需要某种JPA实现,JPA现在就是Hibernate功能的一个子集

在这里插入图片描述

1.2 JPA和Hibernate关系

  • JPA 是 hibernate 的一个抽象(就像JDBC和JDBC驱动的关系):
  • JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架 —— 因为 JPA 并未提供 ORM 实现,它只是制订了一些规范,提供了一些编程的 API 接口,但具体实现则由 ORM 厂商提供实现
  • Hibernate 是实现:Hibernate 除了作为 ORM 框架之外,它也是一种 JPA 实现
  • 从功能上来说, JPA 是 Hibernate 功能的一个子集

1.3 JPA优势

  • 标准化: 提供相同的 API,这保证了基于JPA 开发的企业应用能够经过少量的修改就能够在不同的 JPA 框架下运行。
  • 简单易用,集成方便: JPA 的主要目标之一就是提供更加简单的编程模型,在 JPA 框架下创建实体和创建 Java 类一样简单,只需要使用 javax.persistence.Entity 进行注释;JPA 的框架和接口也都非常简单,
  • 可媲美JDBC的查询能力: JPA的查询语言是面向对象的,JPA定义了独特的JPQL,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
  • 支持面向对象的高级特性: JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,最大限度的使用面向对象的模型

换句话说,为啥只用JPA而不用Hibernate呢?这是因为hibernate对jpa的支持,不是另提供了一套专用于jpa的注解。一些重要的注解如Column, OneToMany等,hibernate没有提供,这说明jpa的注解已经是hibernate 的核心,hibernate只提供了一些补充,而不是两套注解。
hibernate不只实现了JPA的整套功能,还在此基础上增加了一些额外的功能,若JPA提供的功能够我们用了,我们就可以直接用JPA,而且以后切换到另外实现类也很方便,若用Hibernate的话,需要学习一写它的用法,增加了学习成本,而且不利于切换到JPA其他实现版本上去

2.使用

2.1 helloword

参考项目

JPA的persistence.xml文件
JPA持久化persistence.xml配置文件及参数详解

3.注解

JPA(三):JPA基本注解

3.1 常用注解

@Entity
@Id
@Table
@Basic
@Column
@GeneratedValue

3.2 特殊注解

@Temporal
@Transient

4.

后续更新

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章