mybatis中的一級快取和二級快取(隨筆記)

2021-10-03 19:43:24 字數 710 閱讀 9253

一級快取是sqlsession級別的快取,再運算元據庫時需要構造sqlsession物件,在物件中有乙個記憶體區域 資料結構 hashmap 用於儲存快取資料。不同的sqlsession之間的快取資料區域 hashmap互不影響。

mybatis預設開啟一級快取

一級快取的作用域是同乙個sqlsession,在同乙個sqlsession中兩次執行相同的sql語句,第一次執行完畢會將查詢出的資料寫到快取中,第二次會從快取中獲取資料將不再從資料庫查詢,從而提高查詢效率,當乙個sqlsession結束後該sqlsession中的一級快取也就不存在了。

public

void

testcache1()

throws exception

執行結果:

sqlsession1中使用finduserbyid(1

)關閉sqlsession1

sqlsession3中使用finduserbyid(1

),從快取中取出資料

sqlsession3.

commit()

;sqlsession3.

close()

sqlsession2中使用finduserbyid(1

)無法拿到資料(commit重新整理二級快取)

sqlsession2.

close

()

mybatis中的一級快取和二級快取

快取的出現目的就是減少於資料庫之間頻繁的連線操作,當資料成千上萬的時候這樣的操作會極大的浪費時間,所以快取的出現解決了這個問題。mybatis中有一級快取和二級快取,一級快取就是本地的會話快取,其是自動開啟的,它存在於乙個sqlsession的執行中,即當sqlsession.close 時就結束了...

mybatis 快取(一級和二級快取)

1.快取 好處 快取的使用演示 1 sql語句或查詢條件不同 2 分屬不同sqlsession物件 3 查詢前執行clearcache 4 提交事務 2.一級快取 3.二級快取 跟 web應用中 物件作用範圍類似。cacheenabled value true flushinterval 快取重新整...

Mybatis 一級快取和二級快取

一級快取是sqlsession級別的快取 工作機制 乙個sqlsession就代表和資料庫的一次會話,在資料庫中查出的資料放在一級快取中,同乙個物件再次查詢時,會去快取中查詢,避免了再次查詢資料庫。使用 mybatis預設開啟,不需要手動設定 舉例 同乙個物件,查詢兩次,只呼叫一次sql 注 所有測...