日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Hibernate框架使用技術(shù)簡(jiǎn)述

(1)持久化對(duì)象的操作。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供從江網(wǎng)站建設(shè)、從江做網(wǎng)站、從江網(wǎng)站設(shè)計(jì)、從江網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、從江企業(yè)網(wǎng)站模板建站服務(wù),十余年從江做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

Hibernate的主旨是實(shí)現(xiàn)持久化對(duì)象與數(shù)據(jù)庫表的映射。

如何操作持久化對(duì)象就成了主要的技術(shù)問題。Hibernate 在處理持久化對(duì)象時(shí),沒有直接創(chuàng)建和調(diào)用持久化對(duì)象和它的方法,而是利用 CGLIB 和 Java 反射技術(shù)來操縱持久化對(duì)象,通過代理的模式,在持久化對(duì)象的屬性方法被調(diào)用的同時(shí)穿插外部的代碼,甚至利用CGLIB的編程接口來替換持久化類的對(duì)象和方法。這種方式使Hibernate 可以較為容易地處理大量不同類別的持久化對(duì)象。

(2)HQL 語言的轉(zhuǎn)換。

Hibernate3.0 基于 antlr 工具設(shè)計(jì)了 HQL 語言。Hibernate通過解析器解析 HQL 語句,然后分析出其內(nèi)容并轉(zhuǎn)化為 SQL 語句。借助 antlr 工具,這種轉(zhuǎn)換變得可靠并易于實(shí)現(xiàn)??梢栽趆ibernate.cfg.xml中,設(shè)置查詢語言的轉(zhuǎn)換器工廠,例如下面的屬性設(shè)置。

 
 
 
  1.    
  2. org.hibernate.hql.ast.ASTQueryTranslatorFactory   
  3. property> 

(3)事務(wù)服務(wù)。

Hibernate沒有特別設(shè)計(jì)自己的事務(wù)服務(wù)部分,而是借助于JDBC的事務(wù)服務(wù),或者通過配置來借用J2EE 服務(wù)器內(nèi)的 JTA 標(biāo)準(zhǔn)事務(wù)服務(wù)。

(4)XML映射文件。

Hibernate的配置和映射文件的定制主要以XML來實(shí)現(xiàn)。DOM4J 工具為Hibernate 提供了處理 XML 文件的解析器,XML 文件在被導(dǎo)入Hibernate后,被配置到Hibernate 的各個(gè)屬性或者與持久化類對(duì)應(yīng)。通過配置工具,很多屬性也可

以在運(yùn)行狀態(tài)下進(jìn)行修改和加載。

(5)執(zhí)行查詢語句。

Hibernate 的Session 仍然依賴于JDBC 的查詢接口,封裝 JDBC的查詢方法,在抽象的層次上同時(shí)支持SQL 和 HQL 兩種查詢語言。

(6)數(shù)據(jù)庫方言。

不同數(shù)據(jù)庫產(chǎn)品的數(shù)據(jù)類型和查詢語句有一定的區(qū)別,所以創(chuàng)建和管理數(shù)據(jù)庫資源的語句也往往不盡相同。Hibernate 設(shè)計(jì)了方言(Dialect)接口來處理這些差異,使針對(duì)各種數(shù)據(jù)庫產(chǎn)品的操作得以統(tǒng)一,這也是Hibernate 十分流行的原因之一。

(7)JNDI 服務(wù)。

Hibernate自身沒有實(shí)現(xiàn)JNDI服務(wù),依靠外界提供JNDI服務(wù),通??梢詫ibernate的SessionFactory 對(duì)象綁定到 JNDI,或者通過JNDI 獲取數(shù)據(jù)源和其他對(duì)象。

(8)緩沖技術(shù)。

在 Hibernate中可以使用多種緩沖工具,只要它們實(shí)現(xiàn)了CacheProvider 接 口 , 就 可 以 用 于 Hibernate 中 , 其 中 包 括 實(shí) 現(xiàn) OSCache的OSCacheProvider 、 實(shí) 現(xiàn) EHCache 的 EhCacheProvider 、 實(shí) 現(xiàn) SwarmCache 的SwarmCacheProvider 、實(shí)現(xiàn) JBossCache 的 TreeCacheProvider ,以及簡(jiǎn)單地利用一個(gè)Hashtable 來實(shí)現(xiàn)的HashtableCacheProvider 。下面的屬性設(shè)置對(duì)應(yīng)于OSCache。

 
 
 
  1.    
  2.        org.hibernate.cache.OSCacheProvider   
  3. property>   

Hibernate的緩沖機(jī)制分為兩層。第一層緩沖在 Session中實(shí)現(xiàn),屬于事務(wù)級(jí)別的緩沖,隨事務(wù)結(jié)束而消失。第二層緩沖是在持久化實(shí)例的范圍內(nèi)進(jìn)行緩沖,默認(rèn)情況Hibernate 使用 EHCache來實(shí)現(xiàn)。EHCache不支持集群應(yīng)用,所以在集群環(huán)境下需要將緩沖設(shè)置改變?yōu)?SwarmCache 或JBossCache 。

(9)連接池。

Hibernate被設(shè)計(jì)為可以使用多種連接池的系統(tǒng),只要ConnectionProvider 接口,不同類型的連接池或其他能夠提供連接的組件就可以被嵌入到 Hibernate來提供數(shù)據(jù)庫連接。Hibernate中主要包括基于C3P0連接池的C3P0ConnectionProvider和基于Proxool連接池的ProxoolConnectionProvider。與C3P0連接池相關(guān)的部分配置屬性如下:

(10)事件模型。

 
 
 
  1.    
  2.         org.hibernate.connection.C3P0ConnectionProvider   
  3. property>   
  4. 8 property>   
  5. 20 property>   
  6. 2500 property>   
  7. 50 property>   

Hibernate 設(shè)計(jì)了一個(gè)事件模型,利用這個(gè)模型將持久化實(shí)體的操

作事件和處理事件的監(jiān)聽器聯(lián)系起來,為實(shí)現(xiàn) Hibernate的功能提供了一個(gè)可擴(kuò)展的模型。目前Hibernate內(nèi)的事件包括auto-flush,merge,create,delete,dirty-check,evicflush,flush-entity,load,load-collection,lock,refresh,replicate 和 save-update 等。事件的監(jiān)聽器可以由用戶自定義實(shí)現(xiàn),并通過 listener元素聲明,例如,下面的這個(gè)關(guān)于

POLoadListener 的聲明。

 
 
 
  1. "load" class="com.weportal.hibernate.POLoadListener">    


網(wǎng)站標(biāo)題:Hibernate框架使用技術(shù)簡(jiǎn)述
當(dāng)前網(wǎng)址:http://www.5511xx.com/article/dhpejip.html