《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Hibernate框架的數據持久層架構設計及應用
基于Hibernate框架的數據持久層架構設計及應用
來源:微型機與應用2011年第15期
劉德山,楊彬彬
(遼寧師范大學 計算機與信息技術學院,遼寧 大連 116029)
摘要: 數據持久層在Web應用系統開發中,主要應用于業務邏輯和數據邏輯的松散耦合,提高軟件可重用性。分析了Hibernate框架及DAO設計模式的工作原理,設計了基于Hibernate框架采用DAO設計模式的數據持久層架構體系,并通過具體Web應用,闡述了數據持久層架構的具體實現過程。
Abstract:
Key words :

摘  要: 數據持久層在Web應用系統開發中,主要應用于業務邏輯和數據邏輯的松散耦合,提高軟件可重用性。分析了Hibernate框架及DAO設計模式的工作原理,設計了基于Hibernate框架采用DAO設計模式的數據持久層架構體系,并通過具體Web應用,闡述了數據持久層架構的具體實現過程。
關鍵詞: 數據持久化;Hibernate框架;DAO模式;O/R映射

 在Web應用系統中,Web服務器作為連接客戶端和數據庫服務器的一個中間層,既要對客戶端提出的請求進行業務分析和處理,又要訪問數據庫并與數據庫進行交互。當業務邏輯代碼中包含數據訪問代碼時,將給系統的修改和維護帶來很大困難,同時也不利于以后在開發類似系統中進行大粒度的軟件重用。因此有必要把功能層劃分為業務邏輯層和持久層。業務邏輯層專注于業務邏輯的分析和處理,持久層專注于與數據庫交互進行數據的持久化工作,并提供一個標準的接口供業務邏輯層調用。通過這樣一個層次的劃分,實現了高效、清晰的專業分工和職責劃分,既實現了功能層中業務邏輯和數據邏輯之間的松耦合關系,又利于系統的修改、維護和軟件重用[1]。
 目前的J2EE應用系統開發中已經存在不少框架。在系統架構分析時,如何應用已有框架為應用系統量身定做一個合適的架構,對J2EE設計開發者提出了挑戰。本文基于Hibernate框架采用DAO設計模式,設計了數據持久層架構。并將其應用于問卷調查系統,實現了業務邏輯和數據邏輯的松散耦合,提高了系統的開發效率和軟件重用性。
1 Hibernate技術
1.1 Hibernate框架

 Hibernate是采用ORM映射機制進行持久層數據開發的工具,它是Java應用程序和關系數據庫中間的橋梁,負責對Java對象和關系型數據之間映射[2]。其架構體系如圖1所示。

 Hibernate內部封裝JDBC進行訪問數據庫操作,其向上層應用對象提供面向對象的數據庫訪問API,使開發者能充分運用面向對象的編程思維操作數據庫,而無需關心底層數據庫操作。Hibernate自身通過hibernate.cfg.xml和類的映射文件將類和數據庫相映射,應用程序通過Hibernate及持久化對象類直接訪問底層數據庫。
1.2 Hibernate核心接口
 利用Hibernate進行數據持久化操作,至少會用到下列核心接口:Configuration接口負責配置啟動Hibernate并創建SessionFactory對象;SessionFactory接口產生Session實例的工廠類,負責初始化Hibernate并創建Session對象;Session接口是Hibernate進行持久化操作的基礎,相當于JDBC中的Connection對象所起的作用。Session提供了一系列的持久化操作方法,如保存、更新、刪除、查詢等;Transaction接口負責管理事務;Query和 Criteria接口負責執行數據庫查詢[3]。
2 DAO設計模式
 DAO(Data Access Object)模式稱為數據訪問對象模式,是Java EE核心模式之一,其主要的功能是在業務核心方法和具體數據源之間再增加一層DAO接口及其實現類。該模式的本質是向外部提供一個訪問數據源的統一接口,對外隱藏操作數據源的實現細節,以此實現業務邏輯層與DB的解耦[4]。這是因為在實際的應用過程中,應用程序所面對的數據源往往是多種多樣的,不同數據源的連接方式、數據訪問方式會有明顯差異,導致了需要訪問數據源的組件的代碼實現方式與數據源的類型有著密切的關系,組件和數據源之間的這種緊耦合關系也就導致了整個應用系統難以在不同數據源之間進行遷移。使用了DAO模式后,即使系統需要進行數據源的遷移,也只需在DAO模式內部進行數據源訪問代碼的修改,而不會涉及上層調用代碼,從而提高了軟件可維護性。
3 數據持久層架構設計及實現
3.1 數據持久層框架設計

 在應用程序和數據庫之間構建數據持久層,可降低J2EE應用與數據庫的耦合度,并簡化程序開發。基于Hibernate框架采用DAO模式設計的數據持久層整體架構如圖2所示。

 

 

 業務邏輯是整個框架的業務處理的核心部分,由業務邏輯接口、接口實現類和配置文件等組成。它接收控制層的各類調用請求,控制著系統邏輯的實現和處理,并通過調用數據持久層的DAO接口完成數據的存取操作。業務邏輯接口向控制層或其他業務邏輯接口實現類提供各種業務邏輯接口方法,接口實現類則對這些己定義的接口進行具體實現。
 數據持久層使用DAO來抽象和封裝所有對數據源的訪問,DAO管理著數據源的連接以便檢索和存儲數據,DAO通過DAO工廠管理,DAO工廠負責生成DAO組件實例,并維護DAO實例;業務邏輯組件不與DAO組件的實現類耦合,只與DAO組件的接口耦合;DAO實現類中封裝Hibernate API來完成與持久化類相關的業務邏輯操作。
 Hibernate配置文件的主要工作是進行SessionFactory配置、關系型數據庫“方言”與加載持久化類對應的映射文件等。映射文件用來聲明Hibernate中持久化類的屬性與數據庫對應表之間字段的映射關系。
 數據持久化層架構的操作流程為:業務邏輯模塊調用DAOFactory,DAOFactory生成相應的DAO接口及實現類,DAO實現類中封裝Hibernate API來訪問持久化類,通過O/R映射文件聲明持久化類與關系數據庫的映射,最終實現對數據庫的操作。
3.2 數據持久層框架的應用——解決方案及實現
 本設計的數據持久層架構,作為數據持久層解決方案應用于問卷調查系統,最大限度地降低了系統內部各模塊、子系統之間的耦合性,保證了持久層的業務邏輯層相對穩定,基本不需要持久層的調整改變而進行邏輯層的變動。問卷調查系統由問題管理、問卷管理、統計管理、用戶管理、學生信息管理等模塊構成,其數據持久層的具體組織結構如圖3所示[5]。

4 數據持久層的實現
4.1 持久化類及對象/關系映射文件
4.1.1 持久化類

 持久化類的對象PO(Persistenct Object)是一個簡單 Java對象(POJO),一個PO代表了與數據庫表中某條記錄相對應的Hibernate實體,PO的變化在事務提交時反映到實際的數據庫表中。Hibernate中的持久化類符合JavaBean的規范,包括一些屬性和對屬性的訪問方法。圖4是問卷調查系統中Question實體類的模型圖[6]??梢钥闯觯藷o意義的主屬性只能被獲取以外,每一個屬性都有被外部對象獲取(get)和設置(set)兩種方法,通過它們可以獲得對象的屬性值并實現對象之間的導航。


4.1.2 對象/關系映射文件
 映射文件用一個XML格式的映射描述文檔來聲明Hibernate中持久化類的屬性與數據庫對應表之間字段的映射關系,該文件中聲明的屬性名稱要與對應數據表中的字段名稱相同,同時也要與持久化類中所包含的屬性名稱相同。
4.2 Hibernate配置
 為了用Hibernate進行持久化實現,還需要在應用程序的包里放置一個配置文件,以便Hibernate能正確地完成數據庫連接等各種配置和初始化。由于映射文件可以在XML格式的配置文件中進行聲明,在程序中不必調用Configuration類的addClass方法來加載映射文件,因此這種格式的配置文件可以提高應用程序的可維護性。
4.3 數據持久層的DAO接口及實現類
 數據持久化層采用Hibernate作為中間件,使用DAO設計模式實現對數據庫的訪問。DAO模式的實現包括DAO接口和DAO實現類兩部分。DAO接口負責定義訪問特定持久化類所對應的抽象業務邏輯方法;DAO實現類負責利用Hibernate API實現DAO接口所定義的抽象方法的具體實現。
 問卷調查系統在實現DAO模式時,首先創建了HibernateBasicDao,該類繼承Spring框架提供的HibernateDaoSupport類,HibernateBasicDao類封裝了對數據庫持久化的操作,任何它的子類只要使用它的方法就可以實現對數據庫的持久化操作。最后使每個DAO實現類都繼承HibernateBasicDao類實現數據庫的持久化操作。
 圖5描述了問題DAO接口及其實現類,它封裝了對問題的基本操作。其中,delete方法刪除問題信息,getQuestionById方法通過question的Id獲得,getQuestionInCurPape方法通過當前頁數獲得question的具體類,query方法更新問題信息等。限于篇幅,其他DAO接口及實現類的設計不一一給出。

 在基于J2EE的應用中,系統的數據持久層代表著某個系統中一個相對獨立界限明確的邏輯層次,在這個層次中,將數據的使用者和數據實體相關聯,負責對數據庫存儲數據,同時也負責數據的檢索、更新和刪除,實現數據的讀取和持久化操作。本文運用Hibernate框架技術設計了一套數據持久層架構體系,并將其作為數據持久層解決方案應用于問卷調查系統。實踐結果表明,數據持久層架構的應用,降低了數據持久邏輯與業務邏輯的耦合度,簡化了開發過程,優化了數據訪問操作,增強了系統擴展性和可維護性。
參考文獻
[1] 郭善飛.基于J2EE的數據持久層組件的設計與實現[D].北京:北京郵電大學,2009.
[2] 張飛,張建.基于Spring與Hibernate的數據庫訪問技術研究[J].計算機工程與設計,2009,30(7):1669.
[3] 汪萌,曲俊華.基于Hibernate技術的持久層解決方案及實現[J].計算機系統應用,2010,19(3):155.
[4] 歐陽宏基.一種基于DAO設計模式與Hibernate框架的數據持久化層模型[J].微計算機應用,2009,30(3):36-37.
[5] 嚴海.基于Struts+Spring+Hibernate框架構建WEB應用的設計與實現[D].西安:西安電子科技大學.2010.
[6] 吳京慧.基于Hibernate對象持久化Web應用的研究[J].計算機應用與軟件,2009,26(2):90-91.
 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          女女同性女同一区二区三区91| 欧美三区视频| 欧美在线日韩| 欧美精品日韩| 日韩视频免费观看高清完整版| 亚洲一区二区三区高清| 精品动漫3d一区二区三区免费版| 欧美国产三区| 久久精品视频99| 久久人人爽人人爽| 久久精品国产精品亚洲| 另类专区欧美制服同性| 狠狠色丁香久久婷婷综合_中| 狠久久av成人天堂| 亚洲精品国产欧美| 久久精品人人爽| 国产精品一区二区在线观看网站| 久久久精品网| 亚洲激情精品| 亚洲激情电影在线| 国产亚洲精品综合一区91| 亚洲影院色无极综合| 一区二区精品| 国产精品一级二级三级| 国产精品亚洲片夜色在线| 99国产精品视频免费观看| 久久一区中文字幕| 在线观看日韩国产| 国产原创一区二区| 国产欧美一区二区精品仙草咪| 国产精品免费网站在线观看| 亚洲一区二区在线免费观看视频| 欧美xx视频| 亚洲视频www| 国产精品久久网| 午夜亚洲福利| 久久一区视频| 美女亚洲精品| 欧美女同在线视频| 99re这里只有精品6| 久久久久久久久伊人| 亚洲永久在线| 影视先锋久久| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲国产日韩一级| 欧美日韩精品欧美日韩精品| 亚洲国产中文字幕在线观看| 亚洲国产成人久久综合| 久久久久久久久久久久久久一区| 欧美日韩亚洲高清| 久久久av毛片精品| 欧美日本三级| 欧美国产精品va在线观看| 国产精品一区二区你懂的| 蜜臀av在线播放一区二区三区| 日韩亚洲欧美成人一区| 中文在线一区| 一区二区高清在线观看| 一区一区视频| 一区二区三区高清视频在线观看| 欧美视频在线观看免费网址| 亚洲专区国产精品| 欧美日韩裸体免费视频| 久久婷婷国产麻豆91天堂| 亚洲国产欧美日韩另类综合| 欧美大香线蕉线伊人久久国产精品| 欧美三级韩国三级日本三斤| 在线观看成人av电影| 另类欧美日韩国产在线| 久久久一区二区三区| 欧美日韩亚洲综合| 亚洲欧洲一区二区三区在线观看| 伊人夜夜躁av伊人久久| 91久久精品国产91性色tv| 欧美精品在线观看播放| 99精品国产在热久久下载| 中文网丁香综合网| 久久亚洲欧美国产精品乐播| 久久精品99国产精品日本| 欧美一级夜夜爽| 亚洲精品欧美在线| 欧美另类极品videosbest最新版本| 亚洲欧美精品伊人久久| 欧美www视频| 亚洲美女电影在线| 亚洲片在线资源| 亚洲欧美日韩直播| 亚洲影视在线播放| 久久综合色天天久久综合图片| 久久久精品国产99久久精品芒果| 亚洲毛片在线免费观看| 影音先锋成人资源站| 欧美激情中文字幕一区二区| 国产日产精品一区二区三区四区的观看方式| 久久久久久网址| 国产精品麻豆成人av电影艾秋| 国产日韩视频| 欧美一区2区视频在线观看| 欧美日韩国产精品自在自线| 亚洲欧美日韩在线观看a三区| 欧美日韩国产综合一区二区| 亚洲永久字幕| 久久久亚洲午夜电影| 欧美日韩系列| 日韩视频在线一区| 韩国av一区二区三区| 一区二区三区欧美亚洲| 蜜臀久久99精品久久久久久9| 国产精品久久综合| 欧美欧美午夜aⅴ在线观看| 久久久国产视频91| 欧美成人精品在线观看| 亚洲欧洲av一区二区三区久久| 一本色道久久88综合日韩精品| 亚洲午夜久久久久久久久电影院| 欧美三日本三级少妇三2023| 午夜精品久久久久久久久久久| 亚洲综合国产激情另类一区| 亚洲麻豆av| 欧美午夜电影完整版| 欧美日韩日日骚| 欧美日韩精品免费观看视频| 国产永久精品大片wwwapp| 国产深夜精品| 国产精品一区二区黑丝| 欧美日韩亚洲一区二区| 欧美精品18+| 午夜精品三级视频福利| 欧美午夜精品久久久久久人妖| 久久影视三级福利片| 久久99在线观看| 国产精品乱人伦中文| 午夜精品久久99蜜桃的功能介绍| 欧美理论片在线观看| 99热免费精品| 国产精品护士白丝一区av| 黑人一区二区三区四区五区| 国产精自产拍久久久久久| 国产日韩欧美精品| 亚洲免费视频中文字幕| 久久久www免费人成黑人精品| 国产在线视频欧美| 久久婷婷久久| 老司机精品视频网站| 国产精品久久久久久久久久免费| 亚洲永久精品大片| 日韩视频国产视频| 亚洲最新中文字幕| 欧美一级日韩一级| 9色porny自拍视频一区二区| 亚洲狠狠丁香婷婷综合久久久| 国产日韩欧美综合一区| 99在线观看免费视频精品观看| 国产精品久久久一本精品| 亚洲欧美日韩一区二区三区在线观看| 亚洲在线视频网站| 欧美日韩精品久久| 国语自产精品视频在线看一大j8| 9l国产精品久久久久麻豆| 亚洲电影中文字幕| 欧美一区二区福利在线| 美女免费视频一区| 久久久最新网址| 欧美伦理a级免费电影| 国内精品伊人久久久久av一坑| 性欧美大战久久久久久久久| 精品成人国产| 日韩午夜精品视频| 亚洲福利视频二区| 亚洲一区在线视频| 狠狠色狠狠色综合日日五| 欧美日韩一区二区在线视频| 激情综合久久| 久久综合激情| 国产一区二区主播在线| 亚洲国产欧美不卡在线观看| av成人动漫| 亚洲成人自拍视频| 麻豆国产精品va在线观看不卡| 亚洲激情视频网| 国产精品一区免费视频| 在线观看不卡av| 欧美日韩一区成人| 久久精品免费播放| 亚洲激情成人| 亚洲特级片在线| 欧美日韩综合| 欧美视频一区二区三区…| 一本大道久久a久久综合婷婷| 欧美日韩精品一区二区在线播放| 久久av资源网站| 日韩视频中文| 最近中文字幕日韩精品| 国产综合网站| 在线精品一区二区| 亚洲国产视频直播| 黄色成人av网| 在线看国产日韩| av成人激情| 在线观看中文字幕不卡| 亚洲免费播放| 亚洲资源av| 欧美日韩日本视频| 亚洲女人小视频在线观看| 免费在线日韩av| 国产精品日韩精品欧美精品| 亚洲一级片在线观看| 亚洲国产精品尤物yw在线观看| 国产一区二区三区最好精华液| 欧美福利一区二区| 国产亚洲成年网址在线观看| 欧美日韩裸体免费视频| 日韩视频在线观看国产| 国产综合色一区二区三区| 久久久之久亚州精品露出| 国产精品久久久久高潮| 激情另类综合| 欧美精品一区二区三区一线天视频| 欧美大片第1页| 国产精品视频99| 欧美黄污视频| 午夜精品美女自拍福到在线| 99视频精品全部免费在线| 欧美日韩在线影院| 欧美日韩视频在线一区二区| 亚洲高清一区二区三区| 亚洲人体1000| 一本一本久久a久久精品综合麻豆| 99精品国产在热久久| 亚洲尤物在线| 国产精一区二区三区| 国内精品久久久久久久影视麻豆| 香蕉尹人综合在线观看| 午夜国产欧美理论在线播放| 欧美午夜无遮挡| 久久久综合精品| 国产美女精品人人做人人爽| 国产精品视频一二三| 国产精品久久久久久久浪潮网站| 国产亚洲一本大道中文在线| 午夜亚洲影视| 欧美丰满少妇xxxbbb| 亚洲免费在线视频一区 二区| 免费观看成人| 欧美在线免费视屏| 欧美电影免费观看高清完整版| 欧美成人精精品一区二区频| 亚洲视频欧美视频| 中文在线资源观看网站视频免费不卡| 欧美国产丝袜视频| 亚洲自拍偷拍色片视频| 久久久亚洲综合| 午夜精品久久久久久久男人的天堂| 久久久99免费视频| 香蕉久久国产| 久久露脸国产精品| 久久蜜桃资源一区二区老牛| 国产婷婷色综合av蜜臀av| 亚洲永久免费观看| 国产亚洲欧美在线| 在线视频欧美精品| 国产有码在线一区二区视频| 欧美国产大片| 欧美精品一区二区三区四区| 在线观看欧美日韩国产| 在线亚洲电影| 国产精品v欧美精品∨日韩| 日韩午夜av| 国产精品视频免费| 亚洲国产精品精华液2区45| 国内伊人久久久久久网站视频| 久久精品五月| 久久久久国色av免费观看性色| 欧美诱惑福利视频| 免费在线观看成人av| 久久久久久久激情视频| 悠悠资源网亚洲青| 欧美日韩精品免费观看视一区二区| 亚洲大黄网站| 亚洲开发第一视频在线播放| 亚洲视频综合在线| 国产精品一国产精品k频道56| 国产亚洲精品久久久| 久久国产精品黑丝| 欧美日韩亚洲综合| 亚洲国产成人久久综合| 国产精品私人影院| 久久av一区二区三区漫画| 国产精品理论片| 91久久国产自产拍夜夜嗨| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美国产日韩xxxxx| 久久精品国产欧美激情| 在线国产欧美| 久久久久久尹人网香蕉| 亚洲日本中文字幕区| 91久久国产综合久久91精品网站| 国产精品swag| 亚洲片在线资源| 欧美精品高清视频| 国产日产欧产精品推荐色| 久久久伊人欧美| 国产亚洲一区二区三区| 在线日韩欧美| 欧美三级中文字幕在线观看| 国产亚洲精品久久久久久| 欧美成人午夜免费视在线看片| 国产精品视频专区| 久久av最新网址| 欧美freesex8一10精品| 亚洲精品网址在线观看| 99精品视频免费观看视频| 亚洲图片欧洲图片av| 国产资源精品在线观看| 性久久久久久久久久久久| 久久人人爽国产| 国自产拍偷拍福利精品免费一| 久久国产精品亚洲va麻豆| 欧美成ee人免费视频| 亚洲精品黄网在线观看| 欧美一区二区在线观看| 午夜精品在线视频| 欧美先锋影音| 欧美少妇一区二区| 亚洲精品你懂的| 另类欧美日韩国产在线| 嫩草成人www欧美| 欧美伦理视频网站|