王小霞
摘要:本文從Hibernate框架技術入手,研究Hibernate框架技術,探討其在民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)中的應用。系統(tǒng)通過采用Hibernate框架,解決了并發(fā)訪問控制低的問題,增強系統(tǒng)的可擴展性和良好的可維護性。使開發(fā)更加規(guī)范,安裝和部署更加靈活。隨著社會發(fā)展、科研管理等因素的變化,民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)也將不斷發(fā)展,作為系統(tǒng)的設計完成者將會根據(jù)民族研究科研管理數(shù)據(jù)的更新、用戶需求的變化等,對系統(tǒng)不斷更新完善。
關鍵詞:Hibernate;數(shù)據(jù)庫;信息系統(tǒng)
中圖分類號:TP311 文獻標識碼:A 文章編號:1007-9416(2018)05-0085-02
1 引言(概述)
數(shù)據(jù)庫中間件Hibernate的使用,可以實現(xiàn)對關系型數(shù)據(jù)庫對象化,大大提高SQL的使用和JDBC與數(shù)據(jù)庫效率[1]。數(shù)據(jù)庫中間件Hibernate框架技術,提供臨時數(shù)據(jù)緩存供應用者查詢,分一級數(shù)據(jù)和二級數(shù)據(jù)緩存,明顯提高查詢速度。本文在分析Hibernate框架技術的基礎上,展開探討這一技術在民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)開發(fā)中的應用。
2 Hibernate簡介
Hibernate作為數(shù)據(jù)庫與界面之間的橋梁,需要面向對象思想操縱對象。對象可能是普通的JavaBeans/POJO。應用程序通過抽象將應用從底層事務隔離開。使用底層的API或Transaction對象完成輕量級框架提供一級緩存和二級緩存。Hibernate直接提供相關支持,底層驅動可以隨意切換數(shù)據(jù)庫,快速簡潔。使業(yè)務層與具體數(shù)據(jù)庫分開,只針對Hibernate 進行開發(fā),完成數(shù)據(jù)和對象的持久化。針對不同的數(shù)據(jù)庫形成不同的SQL 查詢語句,降低數(shù)據(jù)庫之間遷移的成本。Hibernate支持多種緩存機制,Hibernate適配MS SQLSERVER、ORACLE、SQL、H2、Access和Mysql等多種數(shù)據(jù)庫[2]。Hibernate用反射機制實現(xiàn)持久化對象操作,實現(xiàn)與IDE(Integrated Development Environment)的耦合度[3]。
Hibernate使用數(shù)據(jù)庫和配置信息為應用程序提供持久化服務。從配置文件中讀取數(shù)據(jù)庫相關參數(shù),將持久化類和數(shù)據(jù)表對應使用。用Hibernate API對象持久化,利用映像信息將持久化操作翻譯為SQL語句進行查詢。
Hibernate框架技術最關鍵是數(shù)據(jù)持久化,是將數(shù)據(jù)保存到持久層的過程。持久層的數(shù)據(jù)在掉電后也不會丟失的數(shù)據(jù)。持久層是基于Hibernate技術的檢索系統(tǒng)開發(fā)的基本。系統(tǒng)結構的層次模型有如圖的三個階段[4]如圖1。
整個過程首先實現(xiàn)應用層和數(shù)據(jù)層。數(shù)據(jù)層保存持久化數(shù)據(jù),應用層接收輸入的數(shù)據(jù)。然后通過MVC 模式實現(xiàn)業(yè)務邏輯與表示層的分開。表示層和用戶實現(xiàn)交互,業(yè)務邏輯層處理數(shù)據(jù)持久化操作。將第二階段業(yè)務邏輯層的功能部署拆分后,業(yè)務邏輯層完成核心業(yè)務邏輯處理,持久層完成對象持久化。降低業(yè)務邏輯層復雜度的同時將數(shù)據(jù)持久化讓其他組件完成[5]。
民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)選擇用Spring+Hibernate+ Bootstrap(SHB) 框架實現(xiàn)的檢索系統(tǒng)即是實現(xiàn)分層體系結構的輕量級J2EE框架。顯示層采用Bootstrap MVC框架,中間用Spring,后臺采用Hibernate。分別實現(xiàn)三層次功能。持久層技術與其他部分有較為清晰嚴格的區(qū)分,提供數(shù)據(jù)持久化方案。
3 Hibernate技術在民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)中的應用
Spring+Hibenate Web框架在保持了J2EE優(yōu)勢的同時,簡化了Web 的開發(fā)。Hibernate搜索通過設置和通用的API提供全文檢索支持。民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)選擇使用Spring+ Hibenate Web框架完成開發(fā)。
需要提高系統(tǒng)查詢速度,需要多個數(shù)據(jù)庫之間的交叉查詢,生成多個臨時數(shù)據(jù)庫作為橋梁。數(shù)據(jù)庫中間件Hibernate框架可以不管是使用底層的API還是使用Transaction對象,沒有侵入性,移植性好,提供雙極緩存。
Hibernate在系統(tǒng)中用底層驅動完成隨意切換數(shù)據(jù)庫,選用mysql數(shù)據(jù)庫和Spring集成使用。使用JPA組件完成數(shù)據(jù)庫表生成與修改。利用POI組件鏈接Excel,讀取內容與上傳文件進行匹配,進行批量輸入文獻,先生成臨時數(shù)據(jù)庫后生產成果分值統(tǒng)計計算功能。
3.1 系統(tǒng)持久層使用 Hibernate技術實現(xiàn)O/R映射
“持久層”負責數(shù)據(jù)存儲、數(shù)據(jù)檢索和更新。使用JDBC實體 Beans和JDO等建立。Hibernate實現(xiàn)對象和關系映射和數(shù)據(jù)的持久化。Hibernate的查詢語言HQL與SQL一樣查詢持久化對象,管理Java類到數(shù)據(jù)庫表的映射,提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法。
Hibernate首先將普通的Java對象定義成持久化類。再通過 ORM在數(shù)據(jù)庫和類的對象之間建立映射,通過數(shù)據(jù)庫接口訪問數(shù)據(jù)。
3.2 Hibernate的配置
Hibernate持久化需要用配置文件完成數(shù)據(jù)庫連接。配置文件一種是Hibernate.cfg.xml,另一種是Java屬性文件。兩種都可以提高應用程序的可維護性。Hibernate配置文件除驅動配置信息外包含持久化類映射文件。XML格式的配置文件可直接聲明映射文件,無需調用Configuration類的addClass方法加載映射文件,提高應用程序的可維護性[6]。
完成持久層,先持久化域對象。各種映射包括many to many、many to one、one to one、one to many等。在民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)中的項目管理模塊定義了T_TOPIC_PROJECT表的映射類TopicProject。使用Spring+Hibernate進行配置。
民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)在完成開發(fā)設計實現(xiàn)過程中使用Hibernate數(shù)據(jù)庫中間件技術為該系統(tǒng)實現(xiàn)的關鍵技術路線難點及主要創(chuàng)新點在于成果計分分類統(tǒng)計模塊。
我們使用Hibernate技術根據(jù)期工作原理將成果庫每一條成果的計分數(shù)據(jù)相關參數(shù),將持久化類和數(shù)據(jù)表對應進行對象持久化,利用映像對應于SQL語句進行查詢。利用POI組件鏈接Excel,進行批量輸入文獻,先生成臨時數(shù)據(jù)庫后生產成果分值統(tǒng)計計算功能。最后達到計分可以按照個人、部門或者時間段分類統(tǒng)計查詢。
民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)是中國社會科學院民族學與人類學研究所在社科院級強化科研管理的大背景要求下,做好網絡信息化工作的同時,強化所級科研管理,積極調用所級多年網絡信息化工作技術人員,根據(jù)所級科研管理崗的具體要求,在大數(shù)據(jù)背景縱使下,研究Mysql數(shù)據(jù)庫、Hibernate數(shù)據(jù)庫框架、Solr全文檢索技術Tomcat中間件等多項關鍵技術,開發(fā)出的具有自主知識產權的科研管理數(shù)據(jù)庫檢索系統(tǒng)。在整個開發(fā)完成過程中Hibernate數(shù)據(jù)庫框架技術起到至關重要的作用。解決了傳統(tǒng)的并發(fā)訪問控制低問題,簡化開發(fā)過程,使系統(tǒng)具有更好的可擴展性和良好的可維護性。總結出以下幾點經驗:
(1)數(shù)據(jù)庫表較多表結構復雜時使用Hibernate優(yōu)勢明顯。
(2)查詢要求不高或訪問數(shù)據(jù)量不大時,考慮Hibernate比JDBC更有優(yōu)勢。
(3)Hibernate配置文件和持久化類的映射文件需要隨著Hibernate的更新同步更新。
4 結語
本文通過民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)案例的實現(xiàn)成功結果證實Hibernate數(shù)據(jù)庫框架技術完成間接對于關系型數(shù)據(jù)庫檢索的可行性。很好的彌補了對于關系型數(shù)據(jù)庫難以直接檢索的困難。采用Hibernate框架,使系統(tǒng)的開發(fā)更加規(guī)范,安裝和部署更加靈活。此系統(tǒng)的實際應用說明該系統(tǒng)表現(xiàn)出良好的性能。必將成為數(shù)據(jù)庫檢索系統(tǒng)的一個有力的解決方案。
當然任何一個系統(tǒng)都有可能在運行過程中出新的問題,隨著社會發(fā)展、科研管理等因素的變化,民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)也將不斷發(fā)展,作為系統(tǒng)的設計完成者將會根據(jù)民族研究科研管理數(shù)據(jù)的更新、用戶需求的變化等,對系統(tǒng)不斷更新完善。在民族研究科研管理數(shù)據(jù)庫檢索系統(tǒng)進行完善的分析與處理。在該系統(tǒng)應用的基礎上,繼續(xù)研究進一步探索數(shù)據(jù)庫檢索多庫檢索機制、MVC框架,Hibernate和tomcat技術。
參考文獻
[1]張燕,冷文浩,周斌.基于Struts、Spring和Hibernate的船舶性能系統(tǒng)的設計與實現(xiàn)[J].計算機工程與設計,2008,(8):2121-2124.
[2]楊飛,袁建華.Hibernate 框架在權限管理系統(tǒng)中的應用[J].微電子學與計算機,2007,(2):206-208.
[3]錢忠勝.基于Hibernate 的數(shù)據(jù)持久化研究及其應用[J].微計算機信息(管控一體化),2007,(6):242-245.
[4]陳正舉.基于 HIBERNATE 的數(shù)據(jù)庫訪問優(yōu)化[J].計算機應用與軟件,2012,(7):144-149.
[5]夏赟,李志蜀.基于Hibernate框架的數(shù)據(jù)持久化層的研究及其應用[J].計算機應用,2008,(9):2446-2449.
[6]夏赟,李志蜀.基于Hibernate框架的數(shù)據(jù)持久化層的研究及其應用[J].計算機應用,2008,(9):2446-2449.