hibernate框架 快取機制之一級快取

2021-09-23 22:56:22 字數 1145 閱讀 3983

什麼是快取:我們在記憶體中開闢一塊空間,把本來應該儲存在硬碟上的東西,然後給它放在記憶體裡,將來要讀的時候從記憶體中讀,這個部分就叫做快取。

在hibernate有三種快取,一級快取,二級快取和查詢快取。

一級快取是session級別的快取。

例子:

@test

public void testhuancun()

測試結果:

hibernate: 

select

category0_.id as id0_0_,

category0_.name as name0_0_ 

from

category category0_ 

where

category0_.id=? c0

c0取了兩次category_1,但是只發出1條sql語句,第二次拿資料是從快取中拿。

測試2:

@test

public void testhuancun2()

測試結果:

hibernate: 

select

category0_.id as id0_0_,

category0_.name as name0_0_ 

from

category category0_ 

where

category0_.id=? c0

hibernate: 

select

category0_.id as id0_0_,

category0_.name as name0_0_ 

from

category category0_ 

where

category0_.id=? c0

發出兩條sql語句去取資料。

證明乙個session是不能去拿另外乙個session的快取的。

假如利用多執行緒取資料,每次資料都從不同的session中取,這樣就導致每一次查詢都會訪問資料庫。如何解決?

解決方案:每個session都有各自的快取,那麼我何不弄乙個大的快取,把所有的快取資訊都存在這個大的快取裡。到查詢資訊的時候,去大快取中去查詢,找不到了再去資料庫查詢。這個快取我們稱之為二級快取。

二級快取在下乙個文件裡:

hibernate快取機制

hibernate的快取機制 首先引入快取的目的 hibernate 在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入到快取區後,就可以大大減少應用程式對物理資料來源的訪問,使得程式的執行效能明顯的提公升.什麼是快取 快取是位於應...

Hibernate快取機制

hibernate快取分類 session快取,一級快取.sessionfactory的快取分為內建快取和外接快取.內建快取中存放的是sessionfactory物件的一些集合屬性包含的資料 對映元素據及預定義sql語句等 對於應用程式來說,它是唯讀的.外接快取中存放的是資料庫資料的副本,其作用和一...

Hibernate快取機制

快取是位於應用程式與物理資料來源之間,用於臨時存放複製資料的記憶體區域,目的是為了減少應用程式對物理資料來源訪問的次數,從而提高應用程式的執行效能.hibernate在查詢資料時,首先到快取中去查詢,如果找到就直接使用,找不到的時候就會從物理資料來源中檢索,所以,把頻繁使用的資料載入到快取區後,就可...