大廠常見Java面試題:Hibernate
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框架的一些重要好處是:
- Hibernate消除了JDBC附帶的所有樣板程式碼,並負責管理資源,因此我們可以專注於業務邏輯。
- Hibernate框架提供對XML和JPA註釋的支援,這使我們的程式碼實現獨立。
- Hibernate提供了一種與SQL類似的強大查詢語言(HQL)。但是,HQL完全物件導向,並且瞭解諸如繼承,多型性和關聯之類的概念。
- Hibernate是Red Hat Community的一個開源專案,已在全球範圍內使用。這使它成為比其他方法更好的選擇,因為學習曲線很小,並且有大量的線上文件,並且可以在論壇中輕鬆獲得幫助。
- Hibernate易於與其他Java EE框架整合,因此非常流行,Spring框架提供了將Hibernate與Spring應用程式整合的內建支援。
- Hibernate支援使用代理物件進行延遲初始化,並且僅在需要時才執行實際的資料庫查詢。
- Hibernate快取有助於我們獲得更好的效能。
- 對於資料庫供應商特定的功能,Hibernate是合適的,因為我們還可以執行本機sql查詢。
Hibernate在前幾年是比較流行,現在感覺沒落了,它包含您在ORM工具中將需要的所有功能。
3.解釋Hibernate架構。
4. get和load方法之間有什麼區別?
下面給出了get()和load()方法之間的區別。
5. Hibernate與JDBC相比有什麼優勢?
Hibernate框架相對於JDBC的一些重要優點是:
- Hibernate刪除了JDBC API附帶的許多樣板程式碼,這些程式碼看起來更清晰易讀。
- Hibernate支援繼承,關聯和集合。JDBC API不提供這些功能。
- Hibernate隱式提供事務管理,實際上,大多數查詢無法在事務外部執行。在JDBC API中,我們需要使用commit和rollback編寫用於事務管理的程式碼。
- JDBC API丟擲SQLException ,這是一個已檢查的異常,因此我們需要編寫許多try-catch塊程式碼。在大多數情況下,它在每個JDBC呼叫中都是多餘的,用於事務管理。Hibernate包裝JDBC異常並丟擲JDBCException或HibernateException未經檢查的異常,因此我們不需要編寫程式碼來處理它。Hibernate內建的事務管理功能消除了try-catch塊的使用。
- Hibernate查詢語言(HQL)更加物件導向,並且與Java程式語言非常接近。對於JDBC,我們需要編寫本機SQL查詢。
- Hibernate支援更好的效能快取,不快取JDBC查詢,因此效能低下。
- Hibernate提供了一些選項,透過它們我們也可以建立資料庫表,因為JDBC表必須存在於資料庫中。
- Hibernate配置可幫助我們將JDBC之類的連線以及JNDI DataSource用於連線池。這是企業應用程式中非常重要的功能,而JDBC API完全沒有。
- Hibernate支援JPA批註,因此程式碼獨立於實現,可輕鬆地用其他ORM工具替換。JDBC程式碼與應用程式緊密結合。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2727089/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Java面試】Java常見IO面試題!Java面試題
- 【面試必備】常見Java面試題大綜合Java面試題
- 【Java面試】JSP常見面試題!JavaJS面試題
- 【Java面試】Servlet常見面試題!JavaServlet面試題
- 【Java面試】 Javascript常見面試題!JavaScript面試題
- Java常見的面試題Java面試題
- Java大廠面試題Java面試題
- 常見的Java面試問題Java面試
- 大廠常考的Spring面試題Spring面試題
- 大廠面試常見的幾道SQL題,看你能答嗎?面試SQL
- 大資料面試常見的面試題總結大資料面試題
- Java常見面試題及答案彙總Java面試題
- 常見 React 面試題React面試題
- mybatis常見面試題MyBatis面試題
- spring常見面試題Spring面試題
- SpringMVC常見面試題SpringMVC面試題
- Docker常見面試題Docker面試題
- vue 常見面試題Vue面試題
- Spring常見面試題!Spring面試題
- Dubbo常見面試題面試題
- 前端常見面試題前端面試題
- ajax常見面試題面試題
- String常見面試題面試題
- Hadoop常見面試題Hadoop面試題
- Golang常見面試題Golang面試題
- Mysql 常見面試題MySql面試題
- Redis 常見面試題Redis面試題
- Redis常見面試題Redis面試題
- 【面試】面試常見問題整理面試
- 《我們一起進大廠》系列-Redis常見面試題(帶答案)Redis面試題
- 大前端常見面試題:HTML常考知識點前端面試題HTML
- 【Java】幾道常見的秋招面試題Java面試題
- 32道常見的Java基礎面試題Java面試題
- Java常見面試真題之中級進階Java面試
- Java程式設計師面試常見問題Java程式設計師面試
- 【8】進大廠必須掌握的面試題-Java面試-異常和執行緒面試題Java執行緒
- 效能測試常見面試題面試題
- 求職面試常見問題:Python常見面試題全解析附答案求職Python面試題