亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用Hibernate的javaEE數(shù)據(jù)持久層的解決方案

        2014-04-29 00:00:00戴云松

        摘 要:由于目前關(guān)系數(shù)據(jù)庫(kù)是主流數(shù)據(jù)庫(kù),因此持久層技術(shù)也就變得越來(lái)越重要,也越來(lái)越受到技術(shù)人員的重視。在java技術(shù)當(dāng)中,有較多的方法可以實(shí)現(xiàn)數(shù)據(jù)持久化,因此,持久層也是java程序當(dāng)中重要的內(nèi)容之一。本文主要在介紹數(shù)據(jù)持久層解決方案的基礎(chǔ)上,介紹Hibernate及其在Web應(yīng)用開(kāi)發(fā)中的配置方法,并確立解決方案。

        關(guān)鍵詞:Hibernate;數(shù)據(jù)持久層;java

        中圖分類(lèi)號(hào):TP311.52

        早在2006年,J2EE1.5標(biāo)準(zhǔn)的發(fā)布,標(biāo)志著J2EE正式改名為java EE,在系統(tǒng)中數(shù)據(jù)持久層負(fù)責(zé)數(shù)據(jù)的添加、更新或刪除,從而簡(jiǎn)稱(chēng)為CRUD。目前來(lái)說(shuō),我國(guó)使用的數(shù)據(jù)庫(kù)主要指的是關(guān)系型數(shù)據(jù)庫(kù),要提高數(shù)據(jù)速度以及訪問(wèn)率,在設(shè)計(jì)的過(guò)程中對(duì)持久層的解決方案就顯得非常重要,該解決方案將會(huì)是整個(gè)系統(tǒng)的關(guān)鍵。目前關(guān)于持久層的解決方案有很多種,下面本文進(jìn)行簡(jiǎn)單介紹。

        1 幾種數(shù)據(jù)持久層的解決方案

        在關(guān)系數(shù)據(jù)庫(kù)中,持久層能夠?yàn)槠涮峁┯成浣鉀Q方案,從而能夠有效彌補(bǔ)面向?qū)ο蠹夹g(shù)與關(guān)系數(shù)據(jù)庫(kù)兩者之間的差異。目前最常見(jiàn)的解決方案主要包括:JDBC、JDO以及EJB等。

        JDBC是各種數(shù)據(jù)層之中最原始的方法。在進(jìn)行應(yīng)用開(kāi)發(fā)的過(guò)程中,工程人員可以使用DAO模式將數(shù)據(jù)訪問(wèn)進(jìn)行有效封裝,然后調(diào)用到其他層當(dāng)中。這種方法的好處是:數(shù)據(jù)的運(yùn)行速度較快,工作效率較高。然而由于使用DAO模式,因此也容易將DAO對(duì)象與SQL語(yǔ)言連著相耦合,從而導(dǎo)致在大型項(xiàng)目的開(kāi)發(fā)過(guò)程中難以進(jìn)行維護(hù)工作。盡管具有一定的缺點(diǎn),但使用JDBC對(duì)數(shù)據(jù)持久層進(jìn)行訪問(wèn),仍然是目前較為常用的一種系統(tǒng)開(kāi)發(fā)方式。

        JDO則是目前最新的持久性規(guī)范,它能夠?yàn)槊嫦驅(qū)ο筇峁┏志脭?shù)據(jù)儲(chǔ)存。在該方法的支持下,開(kāi)發(fā)者可以使用一般對(duì)象對(duì)持久數(shù)據(jù)進(jìn)行儲(chǔ)存,且支持批量數(shù)據(jù)的儲(chǔ)存。然而該方法也存在一定的缺點(diǎn):目前的國(guó)內(nèi)還沒(méi)有具體的銷(xiāo)售,且因?yàn)樗⒉皇且粋€(gè)輕量級(jí)封裝,在一定程度上增加了開(kāi)發(fā)者的負(fù)擔(dān),在進(jìn)行程序調(diào)試的過(guò)程中經(jīng)常遇到各種各樣的苦難和麻煩,另外,由于JDO的標(biāo)準(zhǔn)較為參差,容易導(dǎo)致產(chǎn)品之間的不兼容。

        EJB是javaEE平臺(tái)當(dāng)中用作進(jìn)行標(biāo)示或訪問(wèn)的工具之一。它具有方便快捷的優(yōu)點(diǎn),然而在進(jìn)行使用的過(guò)程中,程序人員需要額外購(gòu)買(mǎi)實(shí)體容器,且在使用的過(guò)程中,需要使用到不同的服務(wù)器,也要對(duì)部署描述進(jìn)行重新書(shū)寫(xiě),因此在使用時(shí)會(huì)給人不方便的感覺(jué)。此外,在不同的服務(wù)器應(yīng)用下,會(huì)給應(yīng)用系統(tǒng)帶來(lái)相當(dāng)大的困難。

        2 利用Hibernate的JAVAEE數(shù)據(jù)持久層的解決方案

        2.1 Hibernate的簡(jiǎn)介和工作原理介紹。Hibernate主要是指對(duì)象關(guān)系映射框架,它是由一個(gè)開(kāi)放源代碼構(gòu)成的。能夠有效對(duì)JDBC進(jìn)行對(duì)象封裝,從而能夠讓程序員更加隨心所欲地利用編程思維對(duì)數(shù)據(jù)庫(kù)進(jìn)行控制。Hibernate不僅僅有效提供JAVA類(lèi)與數(shù)據(jù)表之間的映射,還能夠?yàn)槌绦騿T提供數(shù)據(jù)查詢(xún)。相對(duì)于JDBC或SQL等手動(dòng)操作數(shù)據(jù)庫(kù)相比,Hibernate具有一定的自動(dòng)化,并有效減少工作量。此外,由于Hibernate可以使用代理模式進(jìn)行工作,從而有效簡(jiǎn)化載入類(lèi)的過(guò)程,并減少提取代碼的編寫(xiě)量,從而提高程序開(kāi)發(fā)時(shí)間和效率。目前,Hibernate已經(jīng)成功實(shí)現(xiàn)與Web服務(wù)器進(jìn)行良好的集成,并支持大部分?jǐn)?shù)據(jù)庫(kù)服務(wù)器,因此具有一定的通用性。

        在沒(méi)有Hibernate的情況下,JDBC成為java語(yǔ)言數(shù)據(jù)的鏈接口,并具有較高的工作效率和較好的性能。然而目前隨著應(yīng)用系統(tǒng)的不斷擴(kuò)大,數(shù)據(jù)表和數(shù)據(jù)之間的關(guān)系變得越來(lái)越復(fù)雜,JDBC代碼變得更加復(fù)雜,從而影響了整個(gè)系統(tǒng)的性能。而Hibernate的出現(xiàn),有效實(shí)現(xiàn)了以對(duì)象關(guān)系映射的方式進(jìn)行操作,應(yīng)用程序主要通過(guò)持久化對(duì)象(PO)對(duì)Hibernate API進(jìn)行訪問(wèn),從而對(duì)Hibernate所使用的數(shù)據(jù)庫(kù)資源進(jìn)行有效配置。

        此外,Hibernate能夠提供多中運(yùn)行方式,并且在一些輕量系統(tǒng)當(dāng)中該應(yīng)用程序能夠直接實(shí)現(xiàn)與JDBC之間相連接,并進(jìn)行事務(wù)管理。此外,在全面解決體系的過(guò)程中,所有基層的JDBC都被抽象化了。而Hibernate則能夠定義查詢(xún)語(yǔ)言(HQL),還能夠?qū)鹘y(tǒng)的SQL語(yǔ)法進(jìn)行兼容,因此具有很強(qiáng)的靈活性,也正因此,它能夠與多種Web服務(wù)器進(jìn)行集成,并支持應(yīng)用大部分?jǐn)?shù)據(jù)庫(kù)服務(wù)器。

        2.2 利用Hibernate建立應(yīng)用。要提高辦公的工作效率,對(duì)Hibernate進(jìn)行有效配置是非常重要的。下文對(duì)Hibernate有效配置方案進(jìn)行簡(jiǎn)單介紹:

        2.2.1 對(duì)Hibernate進(jìn)行配置工作。在src目錄下創(chuàng)建配置文件,并命名為hibernate.cfg.xml,工程人員要將其路徑配置到應(yīng)用類(lèi)路徑當(dāng)中,并完善對(duì)Hibernate的配置工作。hibernate.cfg.xml配置文件主要通過(guò)三個(gè)方面組成,其中包括Hibernate連接數(shù)據(jù)庫(kù)、生成模式以及特定數(shù)據(jù)庫(kù)信息等。因此,當(dāng)工作人員要將數(shù)據(jù)庫(kù)內(nèi)的變動(dòng)反射到應(yīng)用當(dāng)中時(shí),可以對(duì)配置文件內(nèi)的屬性值進(jìn)行修改。

        2.2.2 映射文檔的創(chuàng)建工作。映射文檔的主要作用是對(duì)持久數(shù)據(jù)進(jìn)行有效定義,因此對(duì)于每個(gè)持久對(duì)象或以class_name來(lái)命名的文件來(lái)講,建立映射文檔是非常重要的。它設(shè)置的正確與否與Hibernate持久化服務(wù)是否正常運(yùn)行有著必要聯(lián)系,同時(shí)也嚴(yán)重影響著系統(tǒng)數(shù)據(jù)庫(kù)的性能。映射文檔代表了持久化類(lèi)與數(shù)據(jù)庫(kù)之間的關(guān)系,其中包括映射字段以及相關(guān)字段。此外,映射文件還可以說(shuō)明持久化類(lèi)之間的關(guān)系。舉個(gè)例子:母女之間的關(guān)系存在一對(duì)多或多對(duì)一,由此原理可以得出關(guān)系型數(shù)據(jù)庫(kù)表的關(guān)系。

        2.2.3 數(shù)據(jù)庫(kù)模式生成。數(shù)據(jù)庫(kù)模式生成主要通過(guò)Hibernate來(lái)實(shí)現(xiàn),下面對(duì)其執(zhí)行命令進(jìn)行詳細(xì)介紹:Java-cp classpath net.sf.hibernate.t001.hbm2ddoptions mapping_files。上述命令能夠有效提供恰當(dāng)?shù)臄?shù)值,并根據(jù)其生成的模式外形。

        2.2.4 對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。程序人員可以根據(jù)Hibernate完成對(duì)數(shù)據(jù)庫(kù)方面的鏈接,并能夠同時(shí)提供對(duì)外接口。當(dāng)Hibernate核心接口(Sessionfactory)獲取之后,便能有效進(jìn)行會(huì)話(session),并進(jìn)行查詢(xún)(guery)、加載(load)、嵌入(insert)、刪除(deiete)。

        2.2.5 Hibernate代碼的初始化運(yùn)行。程序人員在進(jìn)行初始化運(yùn)行時(shí),應(yīng)該要嚴(yán)格按照下列步驟進(jìn)行,下文進(jìn)行詳細(xì)介紹:(1)在進(jìn)行啟動(dòng)時(shí)應(yīng)該使用net.sf.hibernate.cfg對(duì)象對(duì)net.sf.hibernate進(jìn)行獲??;(2)調(diào)用Session Factory對(duì)象上的open Session(),并打開(kāi)net.sf.hibernate.Session;(3)當(dāng)遇到要保存的對(duì)象時(shí),應(yīng)該關(guān)閉session(會(huì)話);(4)當(dāng)要打開(kāi)net.sf.hibernate時(shí),程序人員可以利用Hibernate核心接口對(duì)象上的OpenSessionInView的方式來(lái)打開(kāi)。此外,值得注意的是,在進(jìn)行數(shù)據(jù)庫(kù)報(bào)表的編程中,要考慮的主要包括程序運(yùn)行的效率以及科學(xué)性,其中包括:在進(jìn)行數(shù)據(jù)更新的同時(shí),要避免對(duì)系統(tǒng)本身的數(shù)據(jù)邏輯進(jìn)行更改;對(duì)數(shù)據(jù)字典庫(kù)當(dāng)中的數(shù)據(jù)元素不得隨意更改;報(bào)表開(kāi)發(fā)會(huì)涉及眾多的數(shù)據(jù)選擇,保持程序的運(yùn)行效率非常重要,因此程序邏輯必須要具有科學(xué)性;可以使用附加技術(shù)對(duì)標(biāo)準(zhǔn)程序進(jìn)行動(dòng)態(tài)調(diào)用,減少標(biāo)準(zhǔn)系統(tǒng)的升級(jí)影響。通過(guò)有效地選擇數(shù)表編程,考慮邏輯性和科學(xué)性,并換位思考問(wèn)題,從而得出更好的解決方案。

        3 結(jié)束語(yǔ)

        Hibernate是數(shù)據(jù)持久化對(duì)象的其中一種,同時(shí)也是一個(gè)輕量級(jí)的映射框架。利用Hibernate數(shù)據(jù)持久層設(shè)計(jì)具有眾多優(yōu)點(diǎn),主要包括:第一,利用Hibernate進(jìn)行設(shè)計(jì),能有效減少SQL的使用量,并減少了代碼數(shù)量,提高系統(tǒng)的開(kāi)發(fā)效率與維護(hù)情況。第二,由于Hibernate屬于輕量級(jí)映射框架,且具有開(kāi)放性的特點(diǎn),在進(jìn)行開(kāi)發(fā)時(shí),程序人員可以根據(jù)自身需要進(jìn)行定制或修改源代碼,具有較強(qiáng)的靈活性。第三,Hibernate能夠有效提高數(shù)據(jù)訪問(wèn)的效率。

        Hibernate有效地推動(dòng)了java對(duì)象模型的發(fā)展,通過(guò)利用Hibernate的數(shù)據(jù)持久層的解決方案,程序人員不必對(duì)數(shù)據(jù)庫(kù)邏輯進(jìn)行過(guò)多考慮,從而有效實(shí)現(xiàn)業(yè)務(wù)邏輯,更加科學(xué)、合理地模塊劃分。

        參考文獻(xiàn):

        [1]牛變玲.Java技術(shù)中數(shù)據(jù)的持久化實(shí)現(xiàn)及對(duì)比[J].科技情報(bào)開(kāi)發(fā)與經(jīng)濟(jì).2010(06).

        [2]杜玲玲.基于Hibernate框架的數(shù)據(jù)持久化應(yīng)用開(kāi)發(fā)[J].微計(jì)算機(jī)信息,2008(06).

        作者簡(jiǎn)介:戴云松,男,云南建水人,總經(jīng)理,高級(jí)工程師,碩士學(xué)位。

        作者單位:廣州耘趣網(wǎng)絡(luò)科技有限公司,廣州 510030

        国产2021精品视频免费播放| 免费在线黄色电影| 97人人模人人爽人人少妇 | 国产伦精品一区二区三区视| 男人的天堂av一二三区| 亚洲一区二区三区av资源| 日韩人妻ol丝袜av一二区| 一本色道av久久精品+网站| 亚洲人成网站18男男| 激情五月开心五月啪啪| 成人亚洲一区二区三区在线| 一群黑人大战亚裔女在线播放| 国产呦系列呦交| 国产精品性色av麻豆| 日本午夜精品一区二区三区电影| 婷婷亚洲综合五月天小说| 无码制服丝袜中文字幕| 日本免费一区二区在线看片| 国产农村熟妇videos| 国产在线白丝DVD精品| 国产三级精品三级在线观看粤语| 国产精品一区二区av不卡| 亚洲精品无码国产| 国产999视频| 久久精品亚洲成在人线av| 天天躁日日躁狠狠躁av麻豆| 午夜一区欧美二区高清三区| 91久久综合精品国产丝袜长腿| 成人男性视频在线观看| 国产美女做爰免费视频| 亚洲一区欧美二区| 精品国产亚洲av成人一区| 日本伦理精品一区二区三区| 精品亚洲一区二区三区在线观看| 国产免费久久精品99re丫y| 国产免费精品一品二区三| 体验区试看120秒啪啪免费| 久久精品亚洲中文字幕无码网站| 国产成人一区二区三区影院免费| 日本少妇一区二区三区四区| 国产精品一区二区久久乐下载|