梁德華
(江西旅游商貿(mào)職業(yè)學(xué)院藝術(shù)傳媒與計算機(jī)分院,南昌330100)
基于Hibernate4框架的Java訪問數(shù)據(jù)庫的設(shè)計與實現(xiàn)
梁德華
(江西旅游商貿(mào)職業(yè)學(xué)院藝術(shù)傳媒與計算機(jī)分院,南昌330100)
摘要:傳統(tǒng)的JDBC操作數(shù)據(jù)庫不僅工程大、代碼冗長,而且不利于維護(hù)。Hibernate是一個開源的ORMapping(對象-關(guān)系映射)框架,它可以用在Java項目里簡化數(shù)據(jù)庫的連接訪問操作。本文介紹了Hibernate4框架的技術(shù)特點以及如何使用它創(chuàng)建Java訪問數(shù)據(jù)庫的過程。
關(guān)鍵詞:Hibernate;Java;數(shù)據(jù)庫
Hibernate是一個開放源代碼的框架,它采用ORMapping(對象-關(guān)系映射),輕量級封裝了JDBC。JAVA開發(fā)人員使用它可以很輕松的持久化訪問數(shù)據(jù)庫。Hibernate4是這個框架的最新版本。ORMapping的基本規(guī)則有:類和表對應(yīng);類的屬性和表的字段對應(yīng);類的實例和表中記錄對應(yīng);一個類可以對應(yīng)多個表,一個表可以對應(yīng)多個類;數(shù)據(jù)庫中的表可以無主鍵,對象必須設(shè)置主鍵;數(shù)據(jù)庫中各表的關(guān)系映射為對象之間的關(guān)系;對象中屬性的個數(shù)及名稱可以和表中的字段個數(shù)及名稱不一樣。
Hibernate的主要功能就是映射Java對象和表之間的關(guān)系,它還有查詢數(shù)據(jù)的方法,相對于人工使用SQL和JDBC大大的減少了數(shù)據(jù)處理的時間。Hibernate還可以幫助程序員減少數(shù)據(jù)持久化的編程時間。
在使用MVC模式開發(fā)的Java程序中,Hibernate框架可以作為模型層。Hibernate通過配置hibernate.cfg.xml文件和***.hbm.xml文件將Java對象和數(shù)據(jù)庫進(jìn)行映射,然后就可以對數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行查詢、添加、修改、刪除等操作。
Hibernate4的核心組件有:
(1)SessionFactory接口:負(fù)責(zé)初始化Hibernate。負(fù)責(zé)創(chuàng)建Session對象,充當(dāng)數(shù)據(jù)存儲源的代理。通常每個項目一個SessionFactory就夠了。
(2)Con fi guration類:載 入 Hibernate.cfg.xml文 件, 生 成SessionFactory。
(3)Query接口:提供對數(shù)據(jù)庫和持久對象的查詢操作??梢允褂肧ession的createQuery()方法生成。
(4)Transaction接口:管理Hibernate事務(wù)的接口,主要的方法為rollback()和commit(),Session接口的beginTrancation()可以生成。
(5)Session接口:它有update(),delete(),save(),load()和get()等方法用來進(jìn)行更新、載入、保存、刪除等。是Hibernate非常重要的接口。
目前Hibernate版本有Hibernate2、Hibernate3和Hibernate4,最新的版本是Hibernate4.2.3.Final Released。
Hibernate4的一些常用類包有:
net.sf.hibernate.*,該包的類是接口類和一些異常類。
net.sf.hibernate.cfg.*,該包的類的作用是讀取配置文件。
net.sf.hibernate.connection.*,該包的類是數(shù)據(jù)庫連接池字符串。
net.sf.hibernate.persister.*,該包是Hibernate的核心類包,實現(xiàn)持久行ORMapping。
net.sf.hibernate.loader.*,該包是Hibernate的核心類包,主要作用是生成sql語句。
新建Eclipse工程,把hibernate-release-4.2.3.zip解壓后把lib/required文件夾內(nèi)的jar包復(fù)制到新工程的library里,再把SLF4J(simple logging facade for java)的slf4j-simple-1.5.2.jar和Apache的Log4j的包log4j-1.2.8.jar放到library下面。最后把JDBC的驅(qū)動包也放入到library里面。
在 數(shù) 據(jù) 庫 中 創(chuàng) 建 新 表 tb_example, 字 段 uid,exid,username,userage。配置hibernate.cfg.xml,把該文件放入src目錄下。在該文件中主要配置:連接數(shù)據(jù)庫;可選配置;注冊資源文件;設(shè)置緩存。hibernate-release-4.2.3.zip文件內(nèi)有 hibernate.cfg.xml的實例。在該文件內(nèi)設(shè)置好連接的數(shù)據(jù)庫服務(wù)器名、端口號、管理員賬號、密碼等。
接下來配置與類同名的*.hbm.xml文件,主要配置:類和表的映射;主鍵;類的屬性和表中字段的映射;關(guān)系的映射。hibernate-release-4.2.3.zip文件內(nèi)同樣也有Customer.hbm.xml的實例文件。在文件內(nèi)設(shè)置property字段exit、username、userage等。
使用Hibernate4來實現(xiàn)Java訪問數(shù)據(jù)庫,有非常明顯的優(yōu)勢。Hibernate建立了一種數(shù)據(jù)庫和對象的映射、數(shù)據(jù)操作等框架,可以持久性的訪問數(shù)據(jù)庫對象。和JDBC相比較,Hibernate簡化了代碼,減少了數(shù)據(jù)庫操作的工作量,提高程序開發(fā)的效率。Hibernate也提供了對現(xiàn)在流行的多種數(shù)據(jù)庫的支持,移植性好。Hibernate還是一個開源的Java框架,使得程序員可以修改其源代碼,可以定制符合企業(yè)需求的版本。Hibernate4相比Hibernate其他版本而言,增加了一些新的特性,修補(bǔ)了一些漏洞和問題,更提高了訪問數(shù)據(jù)庫的效率。
參考文獻(xiàn):
[1]朱慶偉,吳宇紅.一種對象/關(guān)系映射框架的分析和應(yīng)用[J].電子科技,2004(01).
[2]秦敏,李志蜀.利用Hibernate框架簡化Java數(shù)據(jù)庫訪問[J].計算機(jī)應(yīng)用于軟件,2006(06).
[3]劉磊,李琦.數(shù)據(jù)庫設(shè)計如何在軟件項目中配置Hibernate關(guān)聯(lián)映射[J].品牌,2014(08).