成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate框架使用技術簡述

開發 后端
如何操作持久化對象就成了主要的技術問題。Hibernate 在處理持久化對象時,沒有直接創建和調用持久化對象和它的方法,而是利用 CGLIB 和 Java 反射技術來操縱持久化對象,通過代理的模式,在持久化對象的屬性方法被調用的同時穿插外部的代碼,甚至利用CGLIB的編程接口來替換持久化類的對象和方法。

 

 

 

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

Hibernate的主旨是實現持久化對象與數據庫表的映射。

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

(2)HQL 語言的轉換。

Hibernate3.0 基于 antlr 工具設計了 HQL 語言。Hibernate通過解析器解析 HQL 語句,然后分析出其內容并轉化為 SQL 語句。借助 antlr 工具,這種轉換變得可靠并易于實現。可以在hibernate.cfg.xml中,設置查詢語言的轉換器工廠,例如下面的屬性設置。

  1. <property name="hibernate.query.factory_class">   
  2. org.hibernate.hql.ast.ASTQueryTranslatorFactory   
  3. property> 

 

 

(3)事務服務。

Hibernate沒有特別設計自己的事務服務部分,而是借助于JDBC的事務服務,或者通過配置來借用J2EE 服務器內的 JTA 標準事務服務。

(4)XML映射文件。

Hibernate的配置和映射文件的定制主要以XML來實現。DOM4J 工具為Hibernate 提供了處理 XML 文件的解析器,XML 文件在被導入Hibernate后,被配置到Hibernate 的各個屬性或者與持久化類對應。通過配置工具,很多屬性也可

以在運行狀態下進行修改和加載。

(5)執行查詢語句。

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

(6)數據庫方言。

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

(7)JNDI 服務。

Hibernate自身沒有實現JNDI服務,依靠外界提供JNDI服務,通常可以將Hibernate的SessionFactory 對象綁定到 JNDI,或者通過JNDI 獲取數據源和其他對象。

(8)緩沖技術。

在 Hibernate中可以使用多種緩沖工具,只要它們實現了CacheProvider 接 口 , 就 可 以 用 于 Hibernate 中 , 其 中 包 括 實 現 OSCache的OSCacheProvider 、 實 現 EHCache 的 EhCacheProvider 、 實 現 SwarmCache 的SwarmCacheProvider 、實現 JBossCache 的 TreeCacheProvider ,以及簡單地利用一個Hashtable 來實現的HashtableCacheProvider 。下面的屬性設置對應于OSCache。

  1. <property name="hibernate.cache.provider_class">   
  2.        org.hibernate.cache.OSCacheProvider   
  3. property>   

 

 

Hibernate的緩沖機制分為兩層。第一層緩沖在 Session中實現,屬于事務級別的緩沖,隨事務結束而消失。第二層緩沖是在持久化實例的范圍內進行緩沖,默認情況Hibernate 使用 EHCache來實現。EHCache不支持集群應用,所以在集群環境下需要將緩沖設置改變為 SwarmCache 或JBossCache 。

(9)連接池。

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

(10)事件模型。

  1. <property name="hibernate.connection.provider_class">   
  2.         org.hibernate.connection.C3P0ConnectionProvider   
  3. property>   
  4. <property name="hibernate.c3p0.min_size">8property>   
  5. <property name="hibernate.c3p0.max_size">20property>   
  6. <property name="hibernate.c3p0.timeout">2500property>   
  7. <property name="hibernate.c3p0.max_statements">50property>   

 

Hibernate 設計了一個事件模型,利用這個模型將持久化實體的操

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

POLoadListener 的聲明。

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

責任編輯:金賀 來源: JavaEye博客
相關推薦

2009-09-29 10:37:29

Hibernate持久

2009-09-29 16:41:58

Hibernate S

2009-09-23 09:16:25

Hibernate復合

2009-09-25 12:31:13

Hibernate映射

2009-09-29 17:22:30

Hibernate S

2009-09-28 13:45:59

Hibernate歷史

2009-09-24 10:35:10

Hibernate查詢

2009-09-29 15:58:22

Hibernate映射

2009-09-28 11:12:52

Hibernate O

2009-09-24 10:15:37

Hibernate查詢

2009-09-22 16:04:50

Hibernate連接

2009-06-22 15:52:15

JSF測試框架

2009-09-24 17:28:29

Hibernate S

2009-09-29 09:44:52

Hibernate事務

2009-09-25 16:57:49

Hibernate查詢

2009-09-28 15:24:38

Hibernate V

2009-09-22 13:09:06

Hibernateorm框架

2009-09-02 15:00:25

VPN技術

2009-09-02 10:05:22

遠程接入

2009-09-25 14:04:09

Hibernate eHibernate h
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧产日产国产精品视频 | 日韩午夜在线播放 | 久久久久国产一区二区三区四区 | 亚洲视频一区二区三区 | 97日韩精品 | 久久久女 | 欧美精品一区三区 | www.99热这里只有精品 | 草b视频 | 久久久久久美女 | 日韩国产中文字幕 | 在线播放中文 | re久久| 一区二区三区四区不卡 | 操久久 | 日韩欧美中文 | 亚洲一区视频在线 | 欧美 日韩 国产 一区 | 一区二区视频 | 中文字幕高清免费日韩视频在线 | 国产 欧美 日韩 一区 | 欧美成人免费 | 亚洲精品乱码久久久久久黑人 | 国产精品五月天 | 91高清在线视频 | 欧美在线a | 日韩av一区二区在线观看 | 国产欧美一区二区三区久久人妖 | 综合国产在线 | 日本久久久久久 | 国产黄色在线观看 | 久久中文字幕一区 | 亚洲精品视频在线看 | 二区av| 国产精品成人一区二区 | 亚洲欧美在线观看 | 国产精品久久久久久中文字 | 日日夜夜免费精品视频 | 亚洲精品久久久久久一区二区 | 麻豆91av| 成人免费视频一区二区 |