Mybatis學習 快取

2021-10-06 15:36:01 字數 1790 閱讀 8013

一級快取 sqlsession級別

一級快取也叫本地快取。在mybatis中,一級快取是預設開啟的。

一級快取只存在於乙個連線開啟與關閉之間。在乙個連線開啟與關閉之間的查詢結果會,存在一級快取中。下一次再次查詢此物件會直接從快取中取出,而不再經過sql語句查詢。

測試1:

由上圖可以看出,在同乙個連線中,查詢兩次同乙個物件,只走了一次sql語句查詢第一次查詢的結果存到了一級快取中,當下一次查詢這個物件時,直接從快取中取出,不再走sql語句。測試2:在兩次查詢相同結果中加入乙個查詢語句,並沒有重新整理此快取,所以在第二次查詢作者2時,同樣是從快取中提取。

測試3:在兩次查詢相同結果中加入乙個insert語句,重新整理此快取,所以在第二次查詢作者2時,需要重新查詢。

快取失效:

增刪改操作,重新整理快取

查詢不同的東西

手動清理快取sqlsession.clearcache();二級快取又叫全域性快取,在mybatis中預設關閉,通過配置設定+標籤開啟二級快取,在這種情況下,實體類需要進行例項化才可以進行操作。

>

name

="cacheenabled"

value

="true"

/>

settings

>

實體類進行例項化:

@data

public

class

blog

implements

serializable

eviction

="fifo"

flushinterval

="60000"

size

="512"

readonly

="true"

/>

測試:

二級快取:在乙個sqlsession關閉之後,該快取會將結果存放到二級快取中,這時當有新的連線查詢此結果時,會直接從二級快取中取出。

快取原理:

MyBatis學習 快取

將資料存放在程式記憶體中,極大地提公升了程式讀寫資料的速度 mybatis提供快取,用於減輕資料查詢的壓力,提高效能 sqlsession級別的快取 每個session對應乙個快取 一級快取是sqlsession級別的快取。在運算元據庫時需要構造 sqlsession物件,在物件中有乙個 記憶體區域...

mybatis學習 快取

一級快取 1.首先讓我們來證明一級快取的存在。使用者持久層dao 我們可以發現,雖然在上面的 中我們查詢了兩次,但最後只執行了一次資料庫操作,這就是 mybatis 提供給我們的一級快取在起作用了。因為一級快取的存在,導致第二次查詢 id 為 55 的記錄時,並沒有發出 sql 語句從資料庫中查詢資...

hibernate快取,mybatis快取詳解

hibernate的快取有一級快取,二級快取,查詢快取。一級快取 很簡單,session級別的快取,通過get,update可以將物件放到一級快取中。二級快取 sessionfactory級別的快取,通過get,list可以將物件放到二級快取中,這裡我必須細講一下,list雖然能夠把物件放入二級快取...