999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Hibernate框架持久化應用及原理探析

2017-02-18 16:16:36溫立輝
科技創(chuàng)新與應用 2017年3期

摘 要:針對Web應用開發(fā)中如何高效的與存儲層交互問題,討論了Hibernate框架的持久化機制以及實現(xiàn)原理,闡述Hibernate框架的適用場景;同時討論ORM的思想原理,最后說明Hibernate框架在Web開發(fā)中的重要作用。

關鍵詞:ORM;持久化;實體;事務;映射

前言

Hibernate框架最初是由一個名字為Gavin King的程序員,在2001年根據(jù)自己對ORM思想的理解,構(gòu)建出來的一個Java持久化應用。在推出第一版后,很快得到了編程界的廣泛關注,并隨后被JBoss公司收購,從此Hibernate框架不斷推陳出新,在Java EE持久化領域獨占熬頭。

1 Hibernate框架應用

Hibernate作為一個持久化框架,其底層對JDBC的API進行了封裝,并在上層把自身的API暴露給應用程序業(yè)務層的一種全自動類型的持久化框架。其之所以能風靡編程界,與其自身的特性密切相關。

(1)Hibernate框架提供多個級別的緩存來加快數(shù)據(jù)的讀寫速度,如:一級的Session緩存、二級的插拔緩存。

(2)Hibernate框架的API及HQL語句具有開發(fā)性,能夠在不同的關系型數(shù)據(jù)庫中通用,可以實現(xiàn)一次編寫,隨處運行的思想。

(3)Hibernate框架的實體類中,只要求有對應的set、get方法,而無須引入其它類,因而它是一種非入侵的開發(fā)方式。

2 ORM原理與實現(xiàn)

ORM也叫對象關系映射(Object Relation Mapping),是面向?qū)ο笳Z言操作持久層的一種有力工具。因面向?qū)ο笳Z言與關系數(shù)據(jù)數(shù)據(jù)庫的交互存在一定的障礙,作為ORM的職責就是在它們中間建立一個交互的渠道,以方便程序與數(shù)據(jù)層的通信。

ORM的實現(xiàn)方式有很多種,Hibernate是其中的一種開源實現(xiàn)方式,具體實現(xiàn)過程如圖1所示。通過ORM插件的映射API及XML映射規(guī)則,面向?qū)ο笳Z言域模型中的業(yè)務實體最終變成關系數(shù)據(jù)庫中的數(shù)據(jù)表,對象將成為表中記錄,屬性將映射成表中的字段。應用程序?qū)⑼ㄟ^Hibernate框架的HQL語句及實體對象與ORM插件模塊進行通信,而關系數(shù)據(jù)庫則通過SQL語句及數(shù)據(jù)關系與ORM插件模塊交互。

3 Hibernate框架組件

Hibernate框架的ORM運作機制以及跨數(shù)據(jù)庫平臺執(zhí)行能力是通過五大核心組件支撐起來,如圖2所示。

Configuration接口:從配置文件hibernate.cfg.xml與實體映射文件*.hbm.xml文件中讀取相應的配置信息,負責程序運行環(huán)境初始化,并構(gòu)建BeanFatory實例。

SessionFatory接口:代表關系數(shù)據(jù)庫中的邏輯數(shù)據(jù)源,為重量級組件,一個實例代表一個邏輯庫,不能隨意創(chuàng)建及銷毀。

Session接口:代表關系數(shù)據(jù)庫的連接,輕量級組件,從SessionFatory接口中可取得此實例,該實例中有對關系數(shù)據(jù)庫增、刪、改、查的操作API。

Query接口:框架中所有通過HQL語句去操作關系數(shù)據(jù)庫時,都必須通過此組件來實現(xiàn),從Session接口中取得該實例。

Transaction接口:框架的事務管理接口,所有對關系數(shù)據(jù)庫的寫操作都必須在框架中開啟事務,否則不會提交到數(shù)據(jù)庫存儲層。

4 Hibernate對象管理

當應用程序通過Hibernate API與關系數(shù)據(jù)庫交互時,持久化框架內(nèi)的實體對象存在著如圖3所示生命周期管理過程。

當業(yè)務實體對象被通過new的方式剛剛創(chuàng)建時,這時實體對象還未與任何持久化機制發(fā)生關聯(lián),與普通的JavaBean對象完成一模一樣,此時實體對象的狀態(tài)稱之為臨時狀態(tài),也叫瞬時狀態(tài)。

當實體對象進入Hibernate的Session緩存時,此時的對象已經(jīng)跟持久化機制發(fā)生關聯(lián),實體對象則處于持久化狀態(tài)。

當實體對象已經(jīng)變成關系數(shù)據(jù)庫數(shù)據(jù)表中的某條記錄時,且已不存在Session中,此時則稱實體對象處于游離狀態(tài)或脫管狀態(tài)。

實體對象的狀態(tài)可以通過框架API的中方法,在三種狀態(tài)中進行相互的轉(zhuǎn)換。在臨時狀態(tài)下,通過save方法可以使對象變成持久化狀態(tài),在持久化狀態(tài)下則可以通過delete方法,使對象重新返回到臨時狀態(tài)中。在持久化狀態(tài)下,則可以通過close、clear等方法使對象變成游離狀態(tài),反過來,通過lock、update等方法則可以使對象的狀態(tài)從游離形式返回到持久化形式。在游離狀態(tài)下,還可以通過delete方法,直接使對象返回到臨時狀態(tài)。

5 結(jié)束語

Hibernate框架是一個持久層的優(yōu)秀框架,同時也是一個主流的ORM工具,其可以讓開發(fā)人員以對象思維操作關系型數(shù)據(jù)庫,讓編碼過程變得更加簡潔、高效。但其也存在一定不足,如,數(shù)據(jù)庫特性功能被抹殺,不支持批量操作等,以上是可以進一步完善的方面。

參考文獻

[1]張少應,程傳旭.基于Hibernate的對象關系映射研究[J].電子設計工程,2016,24(6):128-130.

[2]宮生文,王寧.Hibernate作為J2EE數(shù)據(jù)持久層的分析和研究[J].計算機與信息技術(shù),2006(4):36-38.

[3]卞林,鄭中華,唐曉新.一種基于Hibernate的并行查詢方法[J].電子技術(shù)與軟件工程,2016(7):181-183.

[4]溫立輝.Java EE編程技術(shù)[M].北京:北京理工大學出版社,2016:125-155.

[5]王琦,袁鵬博,陳義明.Hibernate對象管理研究[J].電腦知識與技術(shù):學術(shù)交流,2014(12):8165-8166,8169.

主站蜘蛛池模板: 中文字幕永久在线看| 激情无码字幕综合| yy6080理论大片一级久久| 久久精品娱乐亚洲领先| 色综合久久综合网| 伊人久久大香线蕉综合影视| 亚洲精品桃花岛av在线| yy6080理论大片一级久久| 有专无码视频| 九色91在线视频| 国产高清又黄又嫩的免费视频网站| 农村乱人伦一区二区| 国产精品永久免费嫩草研究院| 992Tv视频国产精品| 精品一区国产精品| 成人午夜网址| 午夜a级毛片| 国产日产欧美精品| 欧美精品影院| 亚洲成a人片7777| 制服丝袜亚洲| 手机永久AV在线播放| 久久久久免费精品国产| 日韩精品毛片人妻AV不卡| 99这里只有精品6| 波多野结衣中文字幕一区| 国产精品久久精品| 欧美亚洲一区二区三区在线| 9999在线视频| Jizz国产色系免费| 性69交片免费看| 国产一级毛片在线| 亚洲精品日产精品乱码不卡| 手机在线免费不卡一区二| 大学生久久香蕉国产线观看| 亚洲精品无码人妻无码| 人妖无码第一页| 精品无码视频在线观看| 日本黄色不卡视频| 丰满人妻被猛烈进入无码| 亚洲系列中文字幕一区二区| 亚洲精品无码av中文字幕| 91精品伊人久久大香线蕉| 熟妇人妻无乱码中文字幕真矢织江 | 丁香综合在线| 在线中文字幕网| 激情无码视频在线看| 亚洲视频免| 久久精品国产一区二区小说| 麻豆国产精品一二三在线观看| www.精品视频| 全部毛片免费看| 国产av无码日韩av无码网站| 草逼视频国产| 国产专区综合另类日韩一区| 在线免费无码视频| 欧美精品综合视频一区二区| 色综合日本| 麻豆精选在线| 亚洲精品无码久久毛片波多野吉| 色偷偷一区二区三区| 夜夜操天天摸| 小说 亚洲 无码 精品| 国产成人福利在线视老湿机| 久久精品国产免费观看频道| 看国产一级毛片| av无码一区二区三区在线| 精品国产91爱| 国产在线小视频| 日日噜噜夜夜狠狠视频| 韩国福利一区| 日本午夜精品一本在线观看| 内射人妻无套中出无码| 亚洲精品无码日韩国产不卡| 亚洲视频欧美不卡| www.99精品视频在线播放| 欧美中文字幕无线码视频| 国产91全国探花系列在线播放| 国产精品v欧美| 精品欧美视频| 亚洲欧美在线综合图区| 一级高清毛片免费a级高清毛片|