jinfeng_wang

          G-G-S,D-D-U!

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks

          hibernate實(shí)現(xiàn)了《企業(yè)應(yīng)用架構(gòu)模式》第11章的許多模式,結(jié)合起來則更能理解hibernate的session的作用。只是雙方的一些術(shù)語(yǔ)未必能直接對(duì)應(yīng)上。
          ===========
          Session接口

          Session(會(huì)話)接口是Hibernate應(yīng)用使用的主要接口。會(huì)話接口的實(shí)例是輕量級(jí)的并且創(chuàng)建與銷毀的代價(jià)也不昂貴。這很重要因?yàn)槟愕膽?yīng)用可能始終在創(chuàng)建與銷毀會(huì)話,可能每一次請(qǐng)求都會(huì)如此。Hibernate會(huì)話并不是線程安全的因此應(yīng)該被設(shè)計(jì)為每次只能在一個(gè)線程中使用。

           

          Hibernate會(huì)話是一個(gè)介于連接和事務(wù)之間的概念。你可以簡(jiǎn)單地認(rèn)為會(huì)話是對(duì)于一個(gè)單獨(dú)的工作單元已裝載對(duì)象的緩存或集合。Hibernate可以檢測(cè)到這個(gè)工作單元中對(duì)象的改變。我們有時(shí)也將會(huì)話稱為持續(xù)性管理器,因?yàn)樗彩桥c持續(xù)性有關(guān)的操作例如存儲(chǔ)和取出對(duì)象的接口。注意,Hibernate會(huì)話與Web層的HttpSession沒有任何關(guān)系。當(dāng)我們?cè)诒緯惺褂脮?huì)話時(shí),我們指的是Hibernate會(huì)話。為了區(qū)別,有時(shí)我們將HttpSession對(duì)象稱為用戶會(huì)話。

           

          SessionFactory接口

          應(yīng)用從SessionFactory(會(huì)話工廠)里獲得會(huì)話實(shí)例。與會(huì)話接口相比,這個(gè)對(duì)象不夠令人興奮。

           

          會(huì)話工廠當(dāng)然不是輕量級(jí)的!它打算在多個(gè)應(yīng)用線程間進(jìn)行共享。典型地,整個(gè)應(yīng)用只有唯一的一個(gè)會(huì)話工廠——例如在應(yīng)用初始化時(shí)被創(chuàng)建。然而,如果你的應(yīng)用使用Hibernate訪問多個(gè)數(shù)據(jù)庫(kù),你需要對(duì)每一個(gè)數(shù)據(jù)庫(kù)使用一個(gè)會(huì)話工廠。

           

          會(huì)話工廠緩存了生成的SQL語(yǔ)句和Hibernate在運(yùn)行時(shí)使用的映射元數(shù)據(jù)。它也保存了在一個(gè)工作單元中讀入的數(shù)據(jù)并且可能在以后的工作單元中被重用(只有類和集合映射指定了這種二級(jí)緩存是想要的時(shí)才會(huì)如此)。


          posted on 2005-04-05 11:13 jinfeng_wang 閱讀(1264) 評(píng)論(0)  編輯  收藏 所屬分類: hibernateOther
          主站蜘蛛池模板: 鱼台县| 枣庄市| 和林格尔县| 新田县| 三都| 阿尔山市| 炉霍县| 社旗县| 福建省| 临颍县| 四川省| 涟水县| 恩平市| 平武县| 邛崃市| 湘潭县| 罗江县| 临湘市| 文登市| 东乌| 沙洋县| 通道| 庐江县| 呼图壁县| 黄梅县| 措勤县| 渭源县| 寿宁县| 汨罗市| 平昌县| 河源市| 乌鲁木齐市| 漳平市| 竹溪县| 乐业县| 孟津县| 海伦市| 临江市| 长子县| 西青区| 璧山县|