Hibernate持久層全面描述
在向大家詳細介紹Hibernate持久層之前,首先讓大家了解下應(yīng)用程序的分層體系結(jié)構(gòu),然后全面介紹Hibernate持久層。
應(yīng)用程序的分層體系結(jié)構(gòu)
隨著計算機應(yīng)用軟件的發(fā)展,應(yīng)用程序逐漸由單層體系結(jié)構(gòu)發(fā)展為多層體系結(jié)構(gòu)。其中,三層結(jié)構(gòu)是目前典型的一種應(yīng)用軟件結(jié)構(gòu)。
◆表述層:提供與用戶交互的界面,如GUI(圖形用戶界面),web頁面等;
◆業(yè)務(wù)邏輯層:負責(zé)各種業(yè)務(wù)邏輯,直接訪問數(shù)據(jù)庫,提供對業(yè)務(wù)數(shù)據(jù)的保存、更新、刪除和查詢操作;
◆數(shù)據(jù)庫層:負責(zé)存放管理應(yīng)用的持久性業(yè)務(wù)數(shù)據(jù)。
三層結(jié)構(gòu)的特點是:所有下層向上層提供調(diào)用的接口,具體實現(xiàn)細節(jié)對上層透明。層與層之間存在自上而下的依賴關(guān)系,即上層會訪問下層的API,但下層不依賴于上層。
Hibernate持久層
1.什么叫持久化?
分離出的Hibernate持久層封裝了數(shù)據(jù)訪問細節(jié),為業(yè)務(wù)邏輯層提供了面向?qū)ο蟮腁PI。
持久(Persistence),即把數(shù)據(jù)(如內(nèi)存中的對象)保存到可***保存的存儲設(shè)備中(如磁盤)。持久化的主要應(yīng)用是將內(nèi)存中的數(shù)據(jù)存儲在關(guān)系型的數(shù)據(jù)庫中,當然也可以存儲在磁盤文件中、XML數(shù)據(jù)文件中等等。
2.什么叫Hibernate持久層?
Hibernate持久層(Persistence Layer),即專注于實現(xiàn)數(shù)據(jù)持久化應(yīng)用領(lǐng)域的某個特定系統(tǒng)的一個邏輯層面,將數(shù)據(jù)使用者和數(shù)據(jù)實體相關(guān)聯(lián)。
3.為什么要持久化?增加Hibernate持久層的作用是什么?
數(shù)據(jù)庫的讀寫是一個很耗費時間和資源的操作,當大量用戶同時直接訪問數(shù)據(jù)庫的時候,效率將非常低,如果將數(shù)據(jù)持久化就不需要每次從數(shù)據(jù)庫讀取數(shù)據(jù),直接在內(nèi)存中對數(shù)據(jù)進行操作,這樣就節(jié)約了數(shù)據(jù)庫資源,而且加快了系統(tǒng)的反映速度。
增加Hibernate持久層提高了開發(fā)的效率,使軟件的體系結(jié)構(gòu)更加清晰,在代碼編寫和系統(tǒng)維護方面變得更容易。特別是在大型的應(yīng)用里邊,會更有利。同時,持久化層作為單獨的一層,人們可以為這一層獨立的開發(fā)一個軟件包,讓其實現(xiàn)將各種應(yīng)用數(shù)據(jù)的持久化,并為上層提供服務(wù)。從而使得各個企業(yè)里做應(yīng)用開發(fā)的開發(fā)人員,不必再來做數(shù)據(jù)持久化的底層實現(xiàn)工作,而是可以直接調(diào)用持久化層提供的API。
4.目前在持久化層領(lǐng)域,實現(xiàn)模式有以下幾種:
◆業(yè)務(wù)邏輯和數(shù)據(jù)訪問耦合
◆主動域?qū)ο竽J?BR>◆ORM模式
◆JDO模式
◆CMP模式
【編輯推薦】