隨筆 - 303  文章 - 883  trackbacks - 0
          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          歡迎光臨! 
          閑聊 QQ:1074961813

          隨筆分類(357)

          我管理的群

          公共blog

          • n維空間
          • Email : java3d@126.com 群 : 12999758

          參與管理的論壇

          好友的blog

          我的其他blog

          朋友的網站

          搜索

          •  

          最新評論

          (本人的文章是在放屁,再次建議,大家一定要好好地看看這本書)


          Hibernate Quickly

          --讀書筆記



          大家好啊 我是尋覓!
                 相信大家已經對Hibernate 有了初步的了解,接下來我們將以最短的章節進一步去了解剩下的章節;這里我把書中我覺得最重要的內容寫出來和大家分享,剩下的內容大家可以通過看這本書補上,沒錢買書的朋友可以到我的前一個文《Hibernate Quickly--讀書筆記(2)》那里去下載,英文版的pdf電子書去看看;
               好了進入正題,上次我們把配置文件給講了:大家先看看這個圖,整個基礎知識部分,我們都將圍繞著這個圖來講解:





          配置、SessionFactory和Session使用部分講完了,我們繼續講Session緩存,先看一段相關代碼:


          //從SessionFactory中獲取一個Session
          Session session = factory.openSession();

          //將Event加載入Session中,并實例化Event對象
          Event e = (Event) session.load(Event.class, myEventId);

              
          //為加載的對象取名
          e.setName("New Event Name");

              
          //對對象進行操作,可以見到通過這種方式,可以減少對數
          //據庫的操作,提高系統的性能和安全性;通常我們的多
          //部操作只需要一次的數據庫持久化操作
          session.saveOrUpdate(e);

              
          //第二次操作
          Event e = (Event) session.load(Event.class, myEventId);
          e.setDuration(
          180);
          session.saveOrUpdate(e);

          //刷新緩沖區將數據寫入數據庫,完成數據持久化
          session.flush();


          當我們的數據訪問十分頻繁時,我們還可以使用事務(Transaction實現批操作)和數據庫池方式:這時我們需要設置一下我們的配置文件 hibernate.cfg.xml:


          <property name="transaction.factory_class">
          org.hibernate.transaction.JTATransactionFactory
          </property>
          <property name="jta.UserTransaction">
          java:comp/UserTransaction
          </property>


          接著我們就可以使用事務(Transaction)了:


          //開始第一個事務
          Transaction tx0 = session.beginTransaction();
          Event event 
          = new Event();
          //進行操作
          session.saveOrUpdate(event);

          //開始第二個事務
          Transaction tx1 = session.beginTransaction();
          Location location 
          = new Location();
          //進行操作
          session.saveOrUpdate(location);

          //分別提交兩個事務
          tx0.commit();
          tx1.commit();


          這里使用了Hibernate的JTA事務,它讓你能像對待單一事務一樣對待多個事務;數據池書中沒這么提起,大家自己看 p74 頁中的介紹;

          接著我們進入主要的內容,Session緩存

           

          緩存服務

          提供者類

          類型

          EHCache

          org.hibernate.cache.EhCacheProvider

          內存,磁盤

          OSCache

          org.hibernate.cache.OSCacheProvider

          內存,磁盤

          SwarmCache

          org.hibernate.cache.SwarmCacheProvider

          集群

          TreeCache

          org.hibernate.cache.TreeCacheProvider

          集群



          不同類型的緩存均有其特性;

           

          緩存服務

          只讀

          讀寫

          單讀寫

          是否支持務

          EHCache

          OSCache

          SwarmCache

          TreeCache



          根據我們的需要選擇要用的Cache,當然我們也可以自己定義咯(這里不講大家自己看書
          P81頁);下面給個例子

          ehcache.xml

           
          <!--聲明使用EHCache緩存服務-->
          <ehcache>
          <!--設置磁盤存儲的位置-->
          <diskStore path="java.io.tmp"/>
          <!--一般常規設置-->
          <defaultCache
          <!--內存保存緩存對象的個數-->
          maxElementsInMemory="10"
          <!--設置緩存對象是會過期的-->
          eternal="false"
          <!--對象的存活期-->
          timeToIdleSeconds="120"
          timeToLiveSeconds="120"
          <!--超過maxElementsInMemory是否保存至diskStore中-->
          overflowToDisk="true"/>

          <!--為Event對象設置緩存,設置選項與上面對應-->
          <cache name="com.manning.hq.ch03.Event"
          maxElementsInMemory
          ="20"
          eternal
          ="false"
          timeToIdleSeconds
          ="120"
          timeToLiveSeconds
          ="180"
          overflowToDisk
          ="true"/>
          </ehcache>


          OK講完咯,大家會覺得瞞亂滴,沒關系下個文章,我將直接跳到一個Spring&Hibernate的

          例子;通過簡單實例了解Hibernate的使用。

          后面還有個小節講的是繼承問題,這個大家都有接觸過自己看看估計沒問題!

          到這里書中的基礎部分內容OVER了,

          接著這樣安排大家自己把后面的HQL和Hibernate使用的細節看看;

          謝謝大家的支持!!!!下個文見了,呵呵~~~~~~






          地震讓大伙知道:居安思危,才是生存之道。
          posted on 2007-04-07 11:36 小尋 閱讀(328) 評論(1)  編輯  收藏 所屬分類: j2se/j2ee/j2me

          FeedBack:
          # re: Hibernate Quickly--讀書筆記(3) [未登錄] 2007-05-15 10:41 SDFSD
          3TRWERE  回復  更多評論
            
          主站蜘蛛池模板: 棋牌| 东光县| 宜川县| 原平市| 卓资县| 大关县| 垣曲县| 于都县| 广南县| 曲松县| 百色市| 都匀市| 武穴市| 郧西县| 光泽县| 泰宁县| 通榆县| 疏附县| 蒙山县| 怀化市| 桐乡市| 伊金霍洛旗| 越西县| 广德县| 仁布县| 湘乡市| 原平市| 汉川市| 图片| 阿尔山市| 成都市| 综艺| 奉贤区| 公安县| 大余县| 永泰县| 东光县| 手游| 敦化市| 衢州市| 黑龙江省|