hibernate的快取有一級快取,二級快取,查詢快取。一級快取 很簡單,session級別的快取,通過get,update可以將物件放到一級快取中。二級快取 sessionfactory級別的快取,通過get,list可以將物件放到二級快取中,這裡我必須細講一下,list雖然能夠把物件放入二級快取,但是我們不能通過list中去獲取二級快取,必須配合查詢快取使用,那他是怎麼與查詢快取配合使用的呢,首先我們知道查詢快取是資料快取,那麼我們知道list方法如果查詢的是物件,只能將每個物件的id放到查詢快取中去,但是物件放到二級快取中去了,那麼我們通過list查詢物件,首先會獲得所有資料的id,然後通過id去查詢物件,但是在這時,我們的物件已經在二級快取中了,所以他會從二級快取中取得物件,並不會從資料庫中查詢。二級快取還有個知識點,因為二級快取是sessionfactory級別的快取,個人認為也可以理解為程序級別的快取,那麼我們對快取中的資料進行更新是否會更新二級快取中的資料勒,答案是會更新的,在做更新操作時,會先清空二級快取中對應的資料。
查詢快取是資料快取,上面提到的都是物件快取,這一點一定要區分開來,那麼它的生命週期是當有資料改變的時候,那麼它的生命週期就結束了,通過這一點我們可以看出當我們插入向資料庫插入一條資料時,查詢快取中的資料就會清空,因此list查詢資料並不會導致查詢資料出現查詢結果與預期不同的現象。同時我們在使用快取時,需要防範髒讀,為什麼呢,因為當我們用其它手段(hibernate除外)對資料庫進行操作,那麼hibernate是檢測不到的,導致快取中的資料時髒資料。
hibernate的優點 :
1、完全的物件導向程式設計
2、hibernate的快取很牛的,一級快取,二級快取,查詢快取 重點
3、程式設計的時候就比較簡單了
4、跨平台性很強
5、使用場合就是企業內部的系統
hibernate的缺點
1、效率比較低
2、表中的資料如果在千萬級別,則hibernate不適合
3、如果表與表之間的關係特別複雜,則hibernate也不適合
hibernate快取機制
hibernate的快取機制 首先引入快取的目的 hibernate 在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入到快取區後,就可以大大減少應用程式對物理資料來源的訪問,使得程式的執行效能明顯的提公升.什麼是快取 快取是位於應...
Hibernate快取機制
hibernate快取分類 session快取,一級快取.sessionfactory的快取分為內建快取和外接快取.內建快取中存放的是sessionfactory物件的一些集合屬性包含的資料 對映元素據及預定義sql語句等 對於應用程式來說,它是唯讀的.外接快取中存放的是資料庫資料的副本,其作用和一...
Hibernate快取機制
快取是位於應用程式與物理資料來源之間,用於臨時存放複製資料的記憶體區域,目的是為了減少應用程式對物理資料來源訪問的次數,從而提高應用程式的執行效能.hibernate在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入到快取區後,就可...