大廠常見Java面試題:Hibernate

千鋒Python唐小強發表於2020-10-15

1.什麼是Hibernate Framework?

物件關係對映或物件關係管理(ORM)是將應用程式域模型物件對映到關聯式資料庫表的程式設計技術。Hibernate是基於Java的ORM工具,它提供了一個框架,用於將應用程式域物件對映到關聯式資料庫表,反之亦然。

Hibernate提供了Java Persistence API的參考實現,使其成為具有鬆散耦合優勢的ORM工具的絕佳選擇。我們可以使用Hibernate永續性API進行CRUD操作。Hibernate框架提供了使用JPA批註以及基於XML的配置將純舊的Java物件對映到傳統資料庫表的選項。

同樣,Hibernate配置也很靈活,可以從XML配置檔案以及以程式設計方式完成。

2.使用Hibernate Framework有哪些重要好處?

使用Hibernate框架的一些重要好處是:

  1. Hibernate消除了JDBC附帶的所有樣板程式碼,並負責管理資源,因此我們可以專注於業務邏輯。
  2. Hibernate框架提供對XML和JPA註釋的支援,這使我們的程式碼實現獨立。
  3. Hibernate提供了一種與SQL類似的強大查詢語言(HQL)。但是,HQL完全物件導向,並且瞭解諸如繼承,多型性和關聯之類的概念。
  4. Hibernate是Red Hat Community的一個開源專案,已在全球範圍內使用。這使它成為比其他方法更好的選擇,因為學習曲線很小,並且有大量的線上文件,並且可以在論壇中輕鬆獲得幫助。
  5. Hibernate易於與其他Java EE框架整合,因此非常流行,Spring框架提供了將Hibernate與Spring應用程式整合的內建支援。
  6. Hibernate支援使用代理物件進行延遲初始化,並且僅在需要時才執行實際的資料庫查詢。
  7. Hibernate快取有助於我們獲得更好的效能。
  8. 對於資料庫供應商特定的功能,Hibernate是合適的,因為我們還可以執行本機sql查詢。

Hibernate在前幾年是比較流行,現在感覺沒落了,它包含您在ORM工具中將需要的所有功能。

3.解釋Hibernate架構。

大廠常見Java面試題:Hibernate

4. get和load方法之間有什麼區別?

下面給出了get()和load()方法之間的區別。

大廠常見Java面試題:Hibernate

5. Hibernate與JDBC相比有什麼優勢?

Hibernate框架相對於JDBC的一些重要優點是:

  1. Hibernate刪除了JDBC API附帶的許多樣板程式碼,這些程式碼看起來更清晰易讀。
  2. Hibernate支援繼承,關聯和集合。JDBC API不提供這些功能。
  3. Hibernate隱式提供事務管理,實際上,大多數查詢無法在事務外部執行。在JDBC API中,我們需要使用commit和rollback編寫用於事務管理的程式碼。
  4. JDBC API丟擲SQLException ,這是一個已檢查的異常,因此我們需要編寫許多try-catch塊程式碼。在大多數情況下,它在每個JDBC呼叫中都是多餘的,用於事務管理。Hibernate包裝JDBC異常並丟擲JDBCException或HibernateException未經檢查的異常,因此我們不需要編寫程式碼來處理它。Hibernate內建的事務管理功能消除了try-catch塊的使用。
  5. Hibernate查詢語言(HQL)更加物件導向,並且與Java程式語言非常接近。對於JDBC,我們需要編寫本機SQL查詢。
  6. Hibernate支援更好的效能快取,不快取JDBC查詢,因此效能低下。
  7. Hibernate提供了一些選項,透過它們我們也可以建立資料庫表,因為JDBC表必須存在於資料庫中。
  8. Hibernate配置可幫助我們將JDBC之類的連線以及JNDI DataSource用於連線池。這是企業應用程式中非常重要的功能,而JDBC API完全沒有。
  9. Hibernate支援JPA批註,因此程式碼獨立於實現,可輕鬆地用其他ORM工具替換。JDBC程式碼與應用程式緊密結合。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2727089/,如需轉載,請註明出處,否則將追究法律責任。

相關文章