Hibernate快取機制之一級快取

2021-07-28 22:44:33 字數 1089 閱讀 6999

快取是介於應用程式和物理資料來源之間,其作用是為了降低應用程式對物理資料來源訪問的頻次,從而提高了應用的執行效能。快取內的資料是對物理資料來源中的資料的複製,應用程式在執行時從快取讀寫資料,在特定的時刻或事件會同步快取和物理資料來源的資料。

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語句等 對於應用程式來說,它是唯讀的.外接快取中存放的是資料庫資料的副本,其作用和一...