偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

JPA與Hibernate的優(yōu)缺點

開發(fā) 后端
JPA(Java Persistence API)是Sun官方提出的Java持久化規(guī)范。它為Java開發(fā)人員提供了一種對象/關(guān)系映射工具來管理Java應(yīng)用中的關(guān)系數(shù)據(jù)。本文將對比JPA與Hibernate的優(yōu)缺點。

Java Persistence API

從 EJB 技術(shù)可以開始應(yīng)用時起,對其在實際應(yīng)用中的可用性就一直存在懷疑。在我看來,產(chǎn)生這種現(xiàn)象最重要的兩個原因是復(fù)雜性和資源密集性。結(jié)果,隨后出現(xiàn)了比 EJB 更簡單、具有更小資源空間的框架(比如 Spring 和 Hibernate),并且更快流行開來。為了說明這一點,我們注意到 EJB 3.0 規(guī)范的方向相對以前出現(xiàn)了一個主要的轉(zhuǎn)變。作為 JSR 220 的一部分,該規(guī)范提供了類似 Plain Old Java Object (POJO) 支持、Dependency Injection(依賴注入)和注釋等功能。現(xiàn)在引入了一組全新的 API:Java Persistence API (JPA),以允許開發(fā)者管理 Java EE(甚至 SE)應(yīng)用程序中的關(guān)系數(shù)據(jù)。另外,Sun 聲稱 Java Persistence API 表現(xiàn)了一些 Hibernate、TopLink(二者都會在稍后討論)、JDO 以及 EJB 框架中***的想法。

當(dāng)前,GlassFish 項目提供了實施 JPA 的一個參考,JPA 在 GlassFish 應(yīng)用程序服務(wù)器中作為 TopLink Essential 部分。您可以在 GlassFish 社區(qū)頁 找到該 JPA 參考實施。不要混淆 TopLink Essentials 和 TopLink,前者現(xiàn)在是由 Oracle Corporation 擁有的關(guān)系映射工具。稍后我將在本文中討論 TopLink 框架。

讓我們來討論一些您應(yīng)該考慮應(yīng)用 JPA 作為持久化框架的應(yīng)用場景。

何時考慮將JPA作為持久化框架

您選擇從流行的框架(比如 Hibernate、TopLink 和 EJB)中選擇應(yīng)用具有“好用”的功能且基于標(biāo)準(zhǔn)的框架。

您需要輕量級的持久化框架,且不需要 EJB 的容器提供的服務(wù)。

您需要可以在標(biāo)準(zhǔn)或 Enterprise Java 應(yīng)用程序中使用的持久化框架。

何時考慮JPA的備選方案

您使用的 Java 的版本決定了實際是否可以應(yīng)用 JPA。JPA 是 EJB 3.0 規(guī)范的一部分,而該規(guī)范是 Java EE 5 版本的一部分。如果您未更新到 Java EE 5,則無法使用 JPA。

您的應(yīng)用程序需要 JPA 無法提供的服務(wù),比如那些由 EJB 容器提供的服務(wù),在那些情況下您更依賴 EJB。

在結(jié)束對此框架的討論前,讓我們列出一些使用 JPA 作為持久化框架的優(yōu)勢和缺點。

JPA有什么優(yōu)勢?

JPA 是基于標(biāo)準(zhǔn)的。越來越多的提供商期待在不久的將來提供 JPA 實施。

它提供了 Hibernate 和 TopLink 中***的功能。

它可以和 Java SE 和 Java EE 應(yīng)用程序一起使用,需要使用 EJB 容器,也可以不要。

JPA有什么缺點?

由于非常新,JPA 規(guī)范可能還需要進過重要發(fā)展才會變得很穩(wěn)定。

JPA 是一個規(guī)范而不是一個產(chǎn)品。您需要提供商提供一個實施,才能獲得這些基于標(biāo)準(zhǔn)的 API 的優(yōu)勢。

Hibernate

Hibernate 是一個對象持久化框架,簡化了 Java 應(yīng)用程序和底層關(guān)系數(shù)據(jù)庫之間的對象關(guān)系映射。方法是提供 POJO 的透明持久化,作為“中介”層來提供自動持久化,并從 Java 應(yīng)用程序加載對象到數(shù)據(jù)庫表。借助 Hibernate,保存對象狀態(tài)到數(shù)據(jù)庫和從數(shù)據(jù)庫加載對象狀態(tài)與調(diào)用 Java 對象中的方法一樣容易。您無需從您的應(yīng)用程序代碼中管理底層的數(shù)據(jù)操作;Hibernate 框架會為您完成所有的中間步驟。

讓我們討論一些您將會考慮應(yīng)用 Hibernate 作為持久化框架的應(yīng)用場景,以及那些您將尋求備選方案的應(yīng)用場景。

何時使用Hibernate作為持久化框架

您正在尋求一個簡單的持久化框架,該框架容易學(xué)習(xí)和使用。在您能夠?qū)嶋H開始持久化您的 Java 對象到目標(biāo)數(shù)據(jù)庫之前,您只需要了解幾個映射配置文件。

您正在尋求一個非常普通和靈活的持久化框架。Hibernate 的用法非常靈活:無論是否有應(yīng)用程序服務(wù)器都可以使用,無論是否有關(guān)系數(shù)據(jù)庫系統(tǒng)也可以使用。

您不想支付獲取和維護費用。Hibernate 是開源而且免費的。

Hibernate 框架非常值得應(yīng)用,因為它非常簡單和靈活,同時也很強大。但是,在以下一些應(yīng)用場景中您可能想要考慮應(yīng)用其他框架。

何時考慮Hibernate的備選框架

您還不想要其他框架。盡管簡單,Hibernate 框架仍然有自己的學(xué)習(xí)曲線、維護/更新周期,等等。

您需要容器提供的服務(wù),比如那些由 EJB 提供的服務(wù),在那些情況下您的選擇局限于 EJB。

如果您正在使用或計劃使用 Hibernate 作為您的持久化框架,這里是一些它的優(yōu)勢和缺點。

Hibernate有什么優(yōu)勢?

Hibernate 易于學(xué)習(xí)和使用。正如我在上面提到的,在您可以使用它之前,您只需要了解幾個簡單、自我描述的配置文件。

它 非常靈活。您可以在任何需要持久化服務(wù)的應(yīng)用程序架構(gòu)中使用 Hibernate。您可以通過 Servlet 和/或 Enterprise Java Bean 在 Standard Java 應(yīng)用程序、Enterprise Java 應(yīng)用程序中使用它。它也可以和 Spring 框架很好地集成。

它可以很好地向上擴展,因為它被設(shè)計為從底層一直到集群環(huán)境中工作。通過類似 Lazy Initialization 的技術(shù)以及通過 CGLIB 運行時間字節(jié)代碼生成庫優(yōu)化 Java 反射,***版的 Hibernate 的性能也得到了加強。

Hibernate有什么缺點?

Hibernate 是另一個擁有自己的應(yīng)用和維護周期的框架。

盡管有積極的社區(qū)支持,但是有時候缺乏專注于此產(chǎn)品的提供商也使得宣傳應(yīng)用此框架顯得沒有說服力。

【編輯推薦】

  1. 關(guān)于Java反射機制的一個實例
  2. 在Java應(yīng)用程序中使用Jfreechart配置
  3. 淺談為什么Java接口中不允許定義變量
  4. Java的異常和斷言學(xué)習(xí)筆記
  5. 關(guān)于Java繼承的一些復(fù)習(xí)
責(zé)任編輯:彭凡 來源: javaeye
相關(guān)推薦

2009-06-15 09:57:46

HibernateIBatis

2009-09-24 09:18:18

2024-01-04 08:00:22

時序數(shù)據(jù)庫項目

2019-04-16 13:12:52

2011-07-11 09:32:54

VMware ToolVMware性能

2021-10-09 09:52:17

云存儲公共云遷移

2010-01-06 15:45:12

2010-06-01 19:33:53

SVN與CVS優(yōu)缺點

2011-08-19 09:21:42

2018-12-11 10:59:35

Tomcat NginxApache

2020-07-10 11:30:29

組合式架構(gòu)傳統(tǒng)存儲存儲

2012-07-13 15:29:49

2018-05-17 11:05:56

2010-06-21 14:14:33

OSPF協(xié)議

2022-07-18 13:36:13

零信任網(wǎng)絡(luò)安全

2021-04-12 14:40:50

人臉識別面部識別人工智能

2020-01-09 10:44:47

Hadoop 3缺點優(yōu)點

2021-10-06 23:31:45

HibernateJPASpring Data

2010-05-31 14:42:14

SVN與CVS優(yōu)缺點

2017-11-17 10:46:13

NginxApache服務(wù)器
點贊
收藏

51CTO技術(shù)棧公眾號