Java應用程式傳統上使用像JDBC(Java資料庫連線)這樣的技術來訪問關聯式資料庫,以便持久地儲存資料。主要問題是面向物件技術和關係技術之間的差異。jdbcapi將要求開發人員手工編寫SQL中最原始的CRUD(建立、讀取、更新和刪除)操作,這些操作缺乏可移植性。
此外,程式碼完全依賴於SQL,這不是關聯式資料庫的標準規範,這將使從一個資料庫到另一個資料庫的轉換更加困難。問題是,關係技術關註的是資料及其關係,而面向物件正規化不僅強調資料,而且強調對資料執行的操作。這會導致物件相關阻抗不匹配。一個被廣泛接受的解決方案是物件關係對映(ORM)。
Hibernate是一個ORM(Object/Relational Mapping,物件/關係對映)框架,用於關註資料永續性的Java程式語言。它只是一個開源的物件關係對映解決方案,它將Java類對映到關聯式資料庫中的資料庫表,並將Java對映到SQL資料型別。它是一個在GNU許可下釋出的輕量級ORM框架,旨在為開發人員提供一個透明的機制來實現永續性。它使用了一種功能強大的查詢語言,類似於名為HQL(Hibernate查詢語言的縮寫)的SQL,它可以快速地與現有和新的應用程式整合,而無需更改應用程式的其餘部分。此外,它完全符合面向物件的概念,如繼承、多型性和關聯。最好的是,它不需要修改應用程式類來實現永續性。
javapersistenceapi,或JPA,是一個描述物件關係對映和持久物件管理介面的規範。除了API定義之外,它還定義了一組關於如何實現物件關係對映以及如何使這些規範與所有JPA提供者相容的規則和準則。Hibernate是JPA指南中最先進、應用最廣泛的ORM實現。JPA只是提供了物件/關係對映平臺,用於管理Java物件/類和Java應用程式中的關聯式資料庫之間的資料。它是為JPA實現供應商設計的一個介面規範,目的是為ORM實現建立一個標準,以滿足高效能資料訪問層的需求。Hibernate是最流行的JPA供應商。
JPA,javapersistenceapi的縮寫,是一種使用Java平臺標準版(Java,SE)和Java平臺企業版(Java,EE)訪問、管理和持久化應用程式中資料的規範。另一方面,Hibernate更像是一種符合JPA規範的ORM實現工具。
JPA是Java中的物件關係對映規範,它允許開發人員更快、更高效地執行資料庫操作,從而允許與資料庫進行輕鬆的互動。它是永續性和物件關係對映的標準API,為資料繫結操作的開發人員提供了一些優勢。Hibernate是一個開源的物件關係對映工具,它簡化了Java應用程式的開發,使連線到資料庫變得比以往任何時候都容易。
JPA的問題是它只是一個規範,沒有提供任何實現類。API只是一組類和方法的集合,這些類和方法按照JPA供應商要遵循的一組特定的規則和規定將資料持久地儲存到資料庫中。Hibernate是眾多JPA實現供應商之一,他們在任何支援JPA的環境(包括javase和javaee應用伺服器)中實現JPA規範。
除了是最流行的JPA實現供應商之外,Hibernate框架還保留了它的原生API,以促進向後相容性,同時不支援任何標準特性。Hibernate附帶了一些Java永續性API不支援的特性,如擴充套件的識別符號生成器、新的日期和時間API、可重覆的註釋、steam查詢結果、可定製的CRUD語句、不可變實體、自然id支援、不相關實體的臨時連線等。
EntityManager是JPA規範實現的標準,在所有實現中都是相同的。相反,如果您想使用hibernateapi,那麼您將使用Hibernate特定的會話來處理永續性。但是,如果您選擇使用Session,您將無法遷移到新的供應商,因為它僅限於hibernateapi。
幾乎所有的企業應用程式都需要某種持久儲存資料的方法。它對企業應用程式至關重要,因為需要訪問關聯式資料庫。永續性是應用程式開發中的一個基本概念,它本身就是一個挑戰,因為需要以一種既快速又高效的方式將層次結構的Java物件序列化到資料庫中。雖然永續性已經成為Java社群討論的熱門話題,但許多開發人員甚至不會就問題的範圍達成一致。在面向物件語言的上下文中,永續性意味著即使在建立資料的過程結束之後,資料仍然可以訪問。有許多方法可以持久地儲存資料。Hibernate就是這樣一個專案,它的目標是為Java中的永續性問題提供一個完整的解決方案,而JPA是一個管理永續性資料和物件關係對映的規範。
主要區別——冬眠與夏眠 動物的睡眠模式因不同的氣候和不同的生長階段而不同。這種睡眠模式表明動物處於一種靜息狀態,在這種狀態下,動物為了在惡劣的、極端的環境中儲存能量,往往會跟在後面。動物描繪的兩種主...
關鍵區別——滯育與冬眠 冬眠是哺乳動物在冬季所具有的一種適應能力,它使它們失去活動能力,新陳代謝能力低下。滯育是另一種在動物生長髮育過程中造成暫時停頓的適應。滯育發生在冬季和夏季的不利條件下,而冬眠...
關鍵區別——春季與冬眠 軟體框架提供了構建和部署應用程式的標準方法。它包括支援程式、編譯器、程式碼庫、工具和應用程式程式設計介面(API)。它連線專案所需的所有元件。程式設計師可以使用框架在程式中使用預...
...你可能會在某個時候遇到這個選擇。混血兒就像是睡眠和冬眠的結合體。像hibernate一樣,它將記憶體狀態儲存到硬碟上。就像睡眠一樣,它也能保持一點點能量流向記憶體,這樣你幾乎可以立刻喚醒電腦。這個想法是,你基本上...
...。這臺電腦在睡眠模式下耗電不多,但確實用了一些。 冬眠 相關:如何讓Windows更頻繁地休眠(而不是休眠) Hibernate模式與sleep非常相似,但它不會將開啟的文件和正在執行的應用程式儲存到RAM中,而是將它們儲存到硬碟中。這...
...mac、Linux系統、chromebook和其他所有產品。 為什麼睡覺和冬眠都很棒 如果你經常使用電腦,關機是非常不方便的。在你關閉之前,你需要儲存你的工作。下次您啟動計算機時,您必須完成啟動過程,手動重新啟動您正在使用的...
...以前所在的位置,並將所有視窗放在完全相同的位置。 冬眠省去了很多工作把這些東西拉回來。 辦公室裡的電腦日復一日地休眠了好幾個月,卻沒有真正的完全關閉和重啟,這並不罕見。在你停止工作的那一刻凍結你的工作空...
將計算機置於休眠模式似乎總是比將其從休眠模式中恢復並繼續工作來得快。為什麼備份系統比關閉系統慢得多? 今天的問答環節是由SuperUser提供的,SuperUser是Stack Exchange的一個分支,是一個由社群驅動的問答網站分組。 問...