posts - 297,  comments - 1618,  trackbacks - 0
          ????? 本文摘自孫衛(wèi)琴的《精通Hibernate:Java對象持久化技術(shù)詳情》
          ????? Hibernate有如下5個核心接口:
          • Configuration接口:該對象用于配置并且根啟動Hibernate。Hibernate應(yīng)用通過Configuration實(shí)例來指定對象-關(guān)系映射文件的位置或動態(tài)配置Hibernate的屬性,然后創(chuàng)建SessionFactory實(shí)例。
          • SessionFactory接口:一個SessionFactory實(shí)例對應(yīng)一個數(shù)據(jù)存儲源,應(yīng)用從SessionFactory中獲得Session實(shí)例。它具有如下特點(diǎn):

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

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

          ??????????????之所以說SessionFactory是重量級的,是因?yàn)樗枰粋€很大的緩存,用來存放預(yù)定義的SQL語句以及映射元數(shù)據(jù)等。用戶還可以為SessionFactory配置一個緩存插件,這個緩存插件被稱為Hibernate的第二級緩存,該緩存用來存放被工作單元讀過的數(shù)據(jù),將來其它工作單元可能會重用這些數(shù)據(jù),因此這個緩存中的數(shù)據(jù)能夠被所有工作單元共享,一個工作單元通常對應(yīng)一個數(shù)據(jù)庫事務(wù)。

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

          ???????????? 1)不是線程安全的,因此在設(shè)計(jì)軟件架構(gòu)時(shí),應(yīng)該避免多個線程共享同一個Session實(shí)例;

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

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

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

          ???????????? Hibernate應(yīng)用可通過一致的Transaction接口來聲明事務(wù)邊界,這有助于應(yīng)用在不同環(huán)境或容器中移植。

          • ?Query和Criteria接口:它們是Hibernate的查詢接口,用于向數(shù)據(jù)庫查詢對象,以及控制執(zhí)行查詢的過程。Query實(shí)例封裝了一個HQL(Hibernate Query Language)查詢語句,HQL是面向?qū)ο蟮模妙惷邦惖膶傩悦皇潜砻氨淼淖侄蚊?。Criteria接口完全封裝了基于字符串形式的查詢語句,比Query接口更加面向?qū)ο?,Criteria接口更擅長于執(zhí)行動態(tài)查詢。
          posted on 2007-02-11 23:53 阿蜜果 閱讀(1535) 評論(3)  編輯  收藏 所屬分類: Hibernate


          FeedBack:
          # re: Hibernate的核心接口學(xué)習(xí)
          2007-09-04 12:25 | 吳楊明
          知道了接口的作用,思路清楚了.....謝謝啦  回復(fù)  更多評論
            
          # re: Hibernate的核心接口學(xué)習(xí)
          2007-12-11 22:28 | 大媽
          謝謝啦  回復(fù)  更多評論
            
          # re: Hibernate的核心接口學(xué)習(xí)
          2007-12-21 17:31 | 游客
          Hibernate的Session緩存問題....最近經(jīng)常碰到 性能和功能的碰撞?  回復(fù)  更多評論
            
          # re: Hibernate的核心接口學(xué)習(xí)
          2007-12-27 14:11 | Libg
          知道了這些內(nèi)容、我的想法思路得到了提高、
          而且在查找資料時(shí)也不會變的盲目了、謝謝您。  回復(fù)  更多評論
            
          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

                生活將我們磨圓,是為了讓我們滾得更遠(yuǎn)——“圓”來如此。
                我的作品:
                玩轉(zhuǎn)Axure RP  (2015年12月出版)
                

                Power Designer系統(tǒng)分析與建模實(shí)戰(zhàn)  (2015年7月出版)
                
               Struts2+Hibernate3+Spring2   (2010年5月出版)
               

          留言簿(263)

          隨筆分類

          隨筆檔案

          文章分類

          相冊

          關(guān)注blog

          積分與排名

          • 積分 - 2298796
          • 排名 - 3

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宝应县| 太原市| 福泉市| 远安县| 青铜峡市| 绍兴县| 贵阳市| 玉树县| 曲靖市| 台中县| 师宗县| 淮安市| 南川市| 明光市| 辽中县| 峨眉山市| 永平县| 汽车| 钟山县| 锦州市| 泗阳县| 平远县| 尼玛县| 巴青县| 灵武市| 高碑店市| 哈巴河县| 瑞丽市| 石渠县| 绿春县| 双流县| 保靖县| 汶川县| 紫阳县| 龙里县| 凤台县| 中卫市| 中方县| 广德县| 察隅县| 海门市|