太陽雨

          痛并快樂著

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            67 Posts :: 3 Stories :: 33 Comments :: 0 Trackbacks
          本文摘自孫衛琴的《精通Hibernate:Java對象持久化技術詳情》
                Hibernate有如下5個核心接口:
          • Configuration接口:該對象用于配置并且根啟動Hibernate。Hibernate應用通過Configuration實例來指定對象-關系映射文件的位置或動態配置Hibernate的屬性,然后創建SessionFactory實例。
          • SessionFactory接口:一個SessionFactory實例對應一個數據存儲源,應用從SessionFactory中獲得Session實例。它具有如下特點:

                        1)它是線程安全的,這意味著它的同一個實例可以被應用的各個線程共享。

                        2)它是重量級的,這意味著不能隨意創建或銷毀它的實例。如果應用只訪問一個數據庫,只需創建一個SessionFactory實例,在應用初始化的時候創建該實例。如果應用同時訪問多個數據庫,則需要為每個數據庫創建一個單獨的SessionFactory實例。

                        之所以說SessionFactory是重量級的,是因為它需要一個很大的緩存,用來存放預定義的SQL語句以及映射元數據等。用戶還可以為SessionFactory配置一個緩存插件,這個緩存插件被稱為Hibernate的第二級緩存,該緩存用來存放被工作單元讀過的數據,將來其它工作單元可能會重用這些數據,因此這個緩存中的數據能夠被所有工作單元共享,一個工作單元通常對應一個數據庫事務。

          • Session接口:該接口是Hibernate應用使用最廣泛的接口。Session也被稱為持久化管理器,提供了和持久化相關的操作,如添加、更新、刪除、加載和查詢對象。Session具有一下特點:

                       1)不是線程安全的,因此在設計軟件架構時,應該避免多個線程共享同一個Session實例;

                       2)Session實例是輕量級的,所謂輕量級,是指它的創建和銷毀不需要消耗太多的資源。這意味著在程序中可以經常創建和銷毀Session對象,例如為每個客戶請求分配單獨的Session實例,或者為每個工作單元分配單獨的Session實例。

                       Session有一個緩存,被稱為Hibernate的第一級緩存,它存放被當前工作單元加載的對象。每個Session實例都有自己的緩存,這個Session實例的緩存,這個Session實例的緩存只能被當前工作單元訪問。

          •  Transaction:該接口是Hibernate的數據庫事務接口,它對底層的事務接口做了封裝,底層事務接口包括:JDBC API、JTA(Java Transaction API)、CORBA(Common Object Requet Broker Architecture) API.

                       Hibernate應用可通過一致的Transaction接口來聲明事務邊界,這有助于應用在不同環境或容器中移植。

          •  Query和Criteria接口:它們是Hibernate的查詢接口,用于向數據庫查詢對象,以及控制執行查詢的過程。Query實例封裝了一個HQL(Hibernate Query Language)查詢語句,HQL是面向對象的,它引用類名及類的屬性名,而不是表名及表的字段名。Criteria接口完全封裝了基于字符串形式的查詢語句,比Query接口更加面向對象,Criteria接口更擅長于執行動態查詢。
          posted on 2008-10-21 14:24 小蟲旺福 閱讀(242) 評論(0)  編輯  收藏 所屬分類: hibernate相關
          主站蜘蛛池模板: 两当县| 泽库县| 本溪市| 多伦县| 岳西县| 万源市| 日喀则市| 台北县| 固始县| 巫溪县| 聂拉木县| 出国| 奇台县| 中超| 镶黄旗| 永济市| 吉安县| 宝清县| 平顺县| 柳河县| 墨竹工卡县| 修文县| 黔西县| 即墨市| 大连市| 青神县| 陈巴尔虎旗| 科技| 柳州市| 南涧| 衡阳县| 宁波市| 沐川县| 大厂| 肥东县| 揭西县| 普安县| 会宁县| 大宁县| 新巴尔虎左旗| 应用必备|