Jpa:基础(一)

文章目录

  • 1.介绍
    • 1.1 JPA是什么?
    • 1.2 JPA和Hibernate关系
    • 1.3 JPA优势
  • 2.使用
    • 2.1 helloword
  • 3.注解
    • 3.1 常用注解
    • 3.2 特殊注解
  • 4.

1.介绍

1.1 JPA是什么?

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

Jpa:基础(一)_第1张图片

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.

后续更新

你可能感兴趣的:(#,Jpa)