java之Hibernate面試要點總結

Jack2k發表於2021-09-11

java之Hibernate面試要點總結

作為常用的框架之一,Hibernate在面試的時候難免會被問到。好在涉及的都是一些理論方面的知識點,比如概念、原理、使用之類的。我們在面試之前可以針對這方面的題目,做一個充足的準備,即使有些人對hibernate框架的瞭解並不深入。下面我們就hibernate框架中常見的面試題帶來介紹。

1. 為什麼要使用 hibernate?

(1).對JDBC做了輕量級的封裝,簡化了資料訪問層編碼。

(2).Hibernate是一個ORM框架,開發者可以使用物件導向的思想運算元據庫,使用更加方便。

(3) hibernate對映很靈活,支援各種關聯式資料庫,從一對一到多對多的各種複雜關係。

2.比較hibernate的三種檢索策略優缺點

(1)立即檢索;

優點: 對應用程式完全透明,不管物件處於持久化狀態,還是遊離狀態,應用程式都可以方便的從一個物件導航到與它關聯的物件;

缺點:1.select語句太多;2.可能會載入應用程式不需要訪問的物件白白浪費許多記憶體空間;

(2)延遲檢索:

優點: 由應用程式決定需要載入哪些物件,可以避免可執行多餘的select語句,以及避免載入應用程式不需要訪問的物件。因此能提高檢索效能,並且能節省記憶體空間;

缺點: 應用程式如果希望訪問遊離狀態代理類例項,必須保證他在持久化狀態時已經被初始化;

(3)迫切左外連線檢索

優點:對應用程式完全透明,不管物件處於持久化狀態,還是遊離狀態,應用程式都可以方便地衝一個物件導航到與它關聯的物件。使用了外連線,select語句數目少;

缺點:可能會載入應用程式不需要訪問的物件,白白浪費許多記憶體空間;複雜的資料庫表連線也會影響檢索效能;

3.什麼是 ORM 框架?            

(Object Relation Mapping)物件關係對映,即透過類與資料庫表的對映關係,將物件持久化到資料庫中。

4.hibernate物件的三種狀態

Hibernate中物件有三種狀態: 臨時狀態(Transient)、持久狀態(Persistent)、遊離狀態(Detached)

臨時狀態:剛剛使用new語句建立,還沒有被持久化,不處於Session的快取中。處於臨時狀態的狀態的Java物件被稱為臨時物件。

持久化狀態:已經被持久化,加入到Session的快取中。處於持久化狀態的Java物件被稱為持久化物件。

遊離狀態:已經被持久化,但不處於session的快取中。處於遊離狀態的Java物件被稱為遊離物件。

5.Hibernate是如何延遲載入?

Hibernate在查詢資料的時候,資料並沒有存在與記憶體中,當程式真正對資料的操作時,物件才存在與記憶體中,就實現了延遲載入,他節省了伺服器的記憶體開銷,從而提高了伺服器的效能。

以上就是java之Hibernate面試要點總結,相信學過Hibernate的人,本篇大部分的題目都可以答出來。對於一些自己不懂的地方,還需要在課後進行彌補。更多Java學習指路:

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

相關文章