feitian2535

          常用鏈接

          統(tǒng)計

          最新評論

          Hibernate 核心接口

          核心接口
              以下5個核心接口幾乎在任何實際開發(fā)中都會用到。通過這些接口,你不僅可以存儲和獲得持久對象,并且能夠進行事務控制。

          Session接口

          Session接口對于Hibernate 開發(fā)人員來說是一個最重要的接口。然而在Hibernate中,實例化的Session是一個輕量級的類,創(chuàng)建和銷毀它都不會占用很多資源。這在實際項目 中確實很重要,因為在客戶程序中,可能會不斷地創(chuàng)建以及銷毀Session對象,如果Session的開銷太大,會給系統(tǒng)帶來不良影響。但值得注意的是 Session對象是非線程安全的,因此在你的設計中,最好是一個線程只創(chuàng)建一個Session對象。

          在Hibernate的設計者的頭腦中,他們將session看作介于數(shù)據(jù)連接與事務管理一種中間接口。我們可以將session想象成一個持久對象 的緩沖區(qū),Hibernate能檢測到這些持久對象的改變,并及時刷新數(shù)據(jù)庫。我們有時也稱Session是一個持久層管理器,因為它包含這一些持久層相 關的操作,諸如存儲持久對象至數(shù)據(jù)庫,以及從數(shù)據(jù)庫從獲得它們。請注意,Hibernate 的session不同于JSP應用中的HttpSession。當我們使用session這個術語時,我們指的是Hibernate中的session, 而我們以后會將HttpSesion對象稱為用戶session。

          SessionFactory 接口

          這里用到了一個設計模式――工廠模式,用戶程序從工廠類SessionFactory中取得Session的實例。

          令你感到奇怪的是SessionFactory并不是輕量級的!實際上它的設計者的意圖是讓它能在整個應用中共享。典型地來說,一個項目通常只需要一 個SessionFactory就夠了,但是當你的項目要操作多個數(shù)據(jù)庫時,那你必須為每個數(shù)據(jù)庫指定一個SessionFactory。
          SessionFactory在Hibernate中實際起到了一個緩沖區(qū)的作用,它緩沖了Hibernate自動生成的SQL語句和一些其它的映射數(shù)據(jù),還緩沖了一些將來有可能重復利用的數(shù)據(jù)。

          Configuration 接口

          Configuration接口的作用是對Hibernate進行配置,以及對它進行啟動。在Hibernate的啟動過程中,Configuration類的實例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個SessionFactory對象。

          雖然Configuration接口在整個Hibernate項目中只扮演著一個很小的角色,但它是啟動hibernate時你所遇到的每一個對象。

          Transaction 接口

          Transaction接口是一個可選的API,你可以選擇不使用這個接口,取而代之的是Hibernate的設計者自己寫的底層事務處理代碼。 Transaction接口是對實際事務實現(xiàn)的一個抽象,這些實現(xiàn)包括JDBC的事務、JTA中的UserTransaction、甚至可以是CORBA 事務。之所以這樣設計是能讓開發(fā)者能夠使用一個統(tǒng)一事務的操作界面,使得自己的項目可以在不同的環(huán)境和容器之間方便地移值。

          Query和Criteria接口

          Query接口讓你方便地對數(shù)據(jù)庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地數(shù)據(jù)庫的SQL語句。Query經(jīng)常被用來綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作。

          Criteria接口與Query接口非常類似,它允許你創(chuàng)建并執(zhí)行面向?qū)ο蟮臉藴驶樵儭?

          值得注意的是Query接口也是輕量級的,它不能在Session之外使用。

          Callback 接口

          當一些有用的事件發(fā)生時――例如持久對象的載入、存儲、刪除時,Callback接口會通知Hibernate去接收一個通知消息。一般而言,Callback接口在用戶程序中并不是必須的,但你要在你的項目中創(chuàng)建審計日志時,你可能會用到它。

          posted on 2007-10-11 14:01 飛天_JGL_Ji 閱讀(155) 評論(0)  編輯  收藏 所屬分類: Hibernate


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 汉源县| 横峰县| 福安市| 石楼县| 高陵县| 盐山县| 五原县| 彭山县| 安宁市| 广汉市| 蕲春县| 武城县| 房山区| 吴忠市| 泉州市| 廊坊市| 垫江县| 贡山| 开封市| 抚顺市| 临沭县| 玉田县| 古田县| 陆丰市| 偏关县| 临武县| 张家界市| 洱源县| 佛教| 泗阳县| 邵东县| 拉萨市| 昂仁县| 毕节市| 洛川县| 田东县| 会同县| 东莞市| 兰西县| 牡丹江市| 和静县|