回覆列表
  • 1 # 好嘛妹妹123

    為了提高系統性能,hibernate也使用了快取機制。在hibernate框架中,主要包含兩個方面的快取,一級快取和二級快取。hibernate快取的作用主要表現在以下兩個方面:1)透過主鍵(ID)載入資料的時候.2)延遲載入中。  一級快取:hibernate的一級快取是由session提供的,因此它只存在session的生命週期中。也就是說session關閉的時候該session所管理的一級快取也隨之被清除。hibernate的一級快取是session所內建的,預設開啟,不能被解除安裝,也不能進行任何配置。在快取中的物件,具有永續性,session物件負責管理.一級快取的優點是使用同一個session物件多次查詢同一個資料物件,僅對資料庫查詢一次。一級快取採用的是Key-Value的MAP方式來實現的。在快取實體物件時,物件的主關鍵字ID是MAP的Key,實體物件就是物件的值。所以說一級快取是以實體物件為單位進行儲存的。訪問的時候使用的是主鍵關鍵字ID。一級快取使用的是自動維護的功能。但可以透過session提供的手動方法對一級快取的管理進行手動干預。evict()方法用於將某個物件從session的一級快取中清除。clear()方法用於將session快取中的方法全部清除。  二級快取:二級快取的實現原理與一級快取是一樣的。也是透過Key-Value的Map來實現對物件的快取。二級快取是作用在SessionFactory範圍內的。因此它它可被所有的Session物件所共享。需要注意的是放入快取中的資料不能有第三方的應用對資料進行修改。  二級快取預設關閉,需要程式設計師手動開啟。首先匯入ehcache.jar二級快取包。然後,在src下新增ehcache.xml配置,同時,在hibernate.cfg.xml中啟用二級快取<propertyname="hibernate.cache.use_second_level_cache">true</property><propertyname="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>。第三:指定使用二級快取快取哪種型別的物件,在hbm.xml中新增<cacheregion="sampleCache1"usage="read-only"/>

  • 中秋節和大豐收的關聯?
  • 隱形眼鏡晚上可以不摘嗎?