1. 程式人生 > >談談你對Hibernate的理解。

談談你對Hibernate的理解。


答:
1. 面向物件設計的軟體內部執行過程可以理解成就是在不斷建立各種新物件、建立物件之間的關係,呼叫物件的方法來改變各個物件的狀態和物件消亡的過程,不管程式執行的過程和操作怎麼樣,本質上都是要得到一個結果,程式上一個時刻和下一個時刻的執行結果的差異就表現在記憶體中的物件狀態發生了變化。
2.為了在關機和記憶體空間不夠的狀況下,保持程式的執行狀態,需要將記憶體中的物件狀態儲存到持久化裝置和從持久化裝置中恢復出物件的狀態,通常都是儲存到關係資料庫來儲存大量物件資訊。從Java程式的執行功能上來講,儲存物件狀態的功能相比系統執行的其他功能來說,應該是一個很不起眼的附屬功能,java採用jdbc來實現這個功能,這個不起眼的功能卻要編寫大量的程式碼,而做的事情僅僅是儲存物件和恢復物件,並且那些大量的jdbc程式碼並沒有什麼技術含量,基本上是採用一套例行公事的標準程式碼模板來編寫,是一種苦活和重複性的工作。
3.通過資料庫儲存java程式執行時產生的物件和恢復物件,其實就是實現了java物件與關係資料庫記錄的對映關係,稱為ORM(即ObjectRelation Mapping),人們可以通過封裝JDBC程式碼來實現了這種功能,封裝出來的產品稱之為ORM框架,Hibernate就是其中的一種流行ORM框架。使用Hibernate框架,不用寫JDBC程式碼,僅僅是呼叫一個save方法,就可以將物件儲存到關係資料庫中,僅僅是呼叫一個get方法,就可以從資料庫中加載出一個物件。
4.使用Hibernate的基本流程是:配置Configuration物件、產生SessionFactory、建立session物件,啟動事務,完成CRUD操作,提交事務,關閉session。
5.使用Hibernate時,先要配置hibernate.cfg.xml檔案,其中配置資料庫連線資訊和方言等,還要為每個實體配置相應的hbm.xml檔案,hibernate.cfg.xml檔案中需要登記每個hbm.xml檔案。
6.在應用Hibernate時,重點要了解Session的快取原理,級聯,延遲載入和hql查詢