一級快取是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 注 所有測...