• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2017-02-18 16:16:36溫立輝
      科技創(chuàng)新與應用 2017年3期
      關鍵詞:映射事務實體

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

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

      前言

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

      1 Hibernate框架應用

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

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

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

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

      2 ORM原理與實現

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

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

      3 Hibernate框架組件

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

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

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

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

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

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

      4 Hibernate對象管理

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

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

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

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

      實體對象的狀態(tài)可以通過框架API的中方法,在三種狀態(tài)中進行相互的轉換。在臨時狀態(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 結束語

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

      參考文獻

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

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

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

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

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

      猜你喜歡
      映射事務實體
      “事物”與“事務”
      基于分布式事務的門架數據處理系統設計與實現
      河湖事務
      前海自貿區(qū):金融服務實體
      中國外匯(2019年18期)2019-11-25 01:41:54
      實體的可感部分與實體——兼論亞里士多德分析實體的兩種模式
      哲學評論(2017年1期)2017-07-31 18:04:00
      兩會進行時:緊扣實體經濟“釘釘子”
      振興實體經濟地方如何“釘釘子”
      RMI原則在代數學教學中的應用
      論美國動畫電影題材變化及現實映射意義
      電影文學(2016年22期)2016-12-20 15:21:26
      試論泰國文化對外來廣告的映射
      東方教育(2016年3期)2016-12-14 20:50:00
      太白县| 宜兰县| 济南市| 偏关县| 商城县| 甘孜县| 保亭| 襄垣县| 连山| 莎车县| 娄烦县| 永平县| 杭锦后旗| 丹棱县| 越西县| 河津市| 磐石市| 普安县| 瓦房店市| 江西省| 南溪县| 河曲县| 滨海县| 长顺县| 越西县| 舞钢市| 大名县| 陇南市| 双鸭山市| 东平县| 南郑县| 昔阳县| 诏安县| 静宁县| 裕民县| 临泽县| 黔江区| 灌南县| 宜春市| 紫云| 阿瓦提县|