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.

後續更新

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