新聞中心
(1)持久化對象的操作。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供從江網站建設、從江做網站、從江網站設計、從江網站制作等企業(yè)網站建設、網頁設計與制作、從江企業(yè)網站模板建站服務,十余年從江做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
Hibernate的主旨是實現(xiàn)持久化對象與數(shù)據庫表的映射。
如何操作持久化對象就成了主要的技術問題。Hibernate 在處理持久化對象時,沒有直接創(chuàng)建和調用持久化對象和它的方法,而是利用 CGLIB 和 Java 反射技術來操縱持久化對象,通過代理的模式,在持久化對象的屬性方法被調用的同時穿插外部的代碼,甚至利用CGLIB的編程接口來替換持久化類的對象和方法。這種方式使Hibernate 可以較為容易地處理大量不同類別的持久化對象。
(2)HQL 語言的轉換。
Hibernate3.0 基于 antlr 工具設計了 HQL 語言。Hibernate通過解析器解析 HQL 語句,然后分析出其內容并轉化為 SQL 語句。借助 antlr 工具,這種轉換變得可靠并易于實現(xiàn)??梢栽趆ibernate.cfg.xml中,設置查詢語言的轉換器工廠,例如下面的屬性設置。
- org.hibernate.hql.ast.ASTQueryTranslatorFactory
- property>
(3)事務服務。
Hibernate沒有特別設計自己的事務服務部分,而是借助于JDBC的事務服務,或者通過配置來借用J2EE 服務器內的 JTA 標準事務服務。
(4)XML映射文件。
Hibernate的配置和映射文件的定制主要以XML來實現(xiàn)。DOM4J 工具為Hibernate 提供了處理 XML 文件的解析器,XML 文件在被導入Hibernate后,被配置到Hibernate 的各個屬性或者與持久化類對應。通過配置工具,很多屬性也可
以在運行狀態(tài)下進行修改和加載。
(5)執(zhí)行查詢語句。
Hibernate 的Session 仍然依賴于JDBC 的查詢接口,封裝 JDBC的查詢方法,在抽象的層次上同時支持SQL 和 HQL 兩種查詢語言。
(6)數(shù)據庫方言。
不同數(shù)據庫產品的數(shù)據類型和查詢語句有一定的區(qū)別,所以創(chuàng)建和管理數(shù)據庫資源的語句也往往不盡相同。Hibernate 設計了方言(Dialect)接口來處理這些差異,使針對各種數(shù)據庫產品的操作得以統(tǒng)一,這也是Hibernate 十分流行的原因之一。
(7)JNDI 服務。
Hibernate自身沒有實現(xiàn)JNDI服務,依靠外界提供JNDI服務,通??梢詫ibernate的SessionFactory 對象綁定到 JNDI,或者通過JNDI 獲取數(shù)據源和其他對象。
(8)緩沖技術。
在 Hibernate中可以使用多種緩沖工具,只要它們實現(xiàn)了CacheProvider 接 口 , 就 可 以 用 于 Hibernate 中 , 其 中 包 括 實 現(xiàn) OSCache的OSCacheProvider 、 實 現(xiàn) EHCache 的 EhCacheProvider 、 實 現(xiàn) SwarmCache 的SwarmCacheProvider 、實現(xiàn) JBossCache 的 TreeCacheProvider ,以及簡單地利用一個Hashtable 來實現(xiàn)的HashtableCacheProvider 。下面的屬性設置對應于OSCache。
- org.hibernate.cache.OSCacheProvider
- property>
Hibernate的緩沖機制分為兩層。第一層緩沖在 Session中實現(xiàn),屬于事務級別的緩沖,隨事務結束而消失。第二層緩沖是在持久化實例的范圍內進行緩沖,默認情況Hibernate 使用 EHCache來實現(xiàn)。EHCache不支持集群應用,所以在集群環(huán)境下需要將緩沖設置改變?yōu)?SwarmCache 或JBossCache 。
(9)連接池。
Hibernate被設計為可以使用多種連接池的系統(tǒng),只要ConnectionProvider 接口,不同類型的連接池或其他能夠提供連接的組件就可以被嵌入到 Hibernate來提供數(shù)據庫連接。Hibernate中主要包括基于C3P0連接池的C3P0ConnectionProvider和基于Proxool連接池的ProxoolConnectionProvider。與C3P0連接池相關的部分配置屬性如下:
(10)事件模型。
- org.hibernate.connection.C3P0ConnectionProvider
- property>
8 property> 20 property> 2500 property> 50 property>
Hibernate 設計了一個事件模型,利用這個模型將持久化實體的操
作事件和處理事件的監(jiān)聽器聯(lián)系起來,為實現(xiàn) Hibernate的功能提供了一個可擴展的模型。目前Hibernate內的事件包括auto-flush,merge,create,delete,dirty-check,evicflush,flush-entity,load,load-collection,lock,refresh,replicate 和 save-update 等。事件的監(jiān)聽器可以由用戶自定義實現(xiàn),并通過 listener元素聲明,例如,下面的這個關于
POLoadListener 的聲明。
- "load" class="com.weportal.hibernate.POLoadListener">
網站名稱:Hibernate框架使用技術簡述
網站鏈接:http://m.fisionsoft.com.cn/article/dhpejip.html


咨詢
建站咨詢
