快取是介於應用程式和物理資料來源之間,其作用是為了降低應用程式對物理資料來源訪問的頻次,從而提高了應用的執行效能。快取內的資料是對物理資料來源中的資料的複製,應用程式在執行時從快取讀寫資料,在特定的時刻或事件會同步快取和物理資料來源的資料。
hibernate的第一級快取也就是session的快取,它是內建的,是不能被解除安裝的
資料庫中有一條student記錄
準備通過get方法連續載入它兩次,如果hibernate底層執行了兩次select說明沒有快取,如果執行了一次select說明有快取,因為bean很簡單,配置也很容易,所以那些操作這裡就不貼了
測試**
public
void
testget() catch (exception e)
}
select
student0_.t_id as t_id1_0_0_,
student0_.t_name as t_name2_0_0_,
student0_.t_age as t_age3_0_0_,
student0_.t_score as t_score4_0_0_
from
t_student student0_
where
student0_.t_id=?
可以發現確實是查了一次資料庫分析student student = session.get(student.class, 1)
這句**都幹了些什麼
1)、將資料從db中取出來
2)、將資料轉變成物件,並存入堆記憶體中
3)、將物件的id放入session快取map的key中,將物件的引用放入session快取map的 value中(這就是所謂的一級快取)
而當進行第二次get時,hibernate會先到session的map中找是否存在key為1的物件,如果有,就不需要訪問資料庫,直接返回對應物件的引用。所以上面的程式只查了一次資料庫
hibernate框架 快取機制之一級快取
什麼是快取 我們在記憶體中開闢一塊空間,把本來應該儲存在硬碟上的東西,然後給它放在記憶體裡,將來要讀的時候從記憶體中讀,這個部分就叫做快取。在hibernate有三種快取,一級快取,二級快取和查詢快取。一級快取是session級別的快取。例子 test public void testhuancun...
hibernate快取機制
hibernate的快取機制 首先引入快取的目的 hibernate 在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入到快取區後,就可以大大減少應用程式對物理資料來源的訪問,使得程式的執行效能明顯的提公升.什麼是快取 快取是位於應...
Hibernate快取機制
hibernate快取分類 session快取,一級快取.sessionfactory的快取分為內建快取和外接快取.內建快取中存放的是sessionfactory物件的一些集合屬性包含的資料 對映元素據及預定義sql語句等 對於應用程式來說,它是唯讀的.外接快取中存放的是資料庫資料的副本,其作用和一...