在mybatis中,一級快取預設是開啟的,並且一直無法關閉,作用域:在同乙個sqlsession下。
不會命中的情況
1.使用sqlsession.clearcache()可以強制清除快取
2.在執行update,insert,delete的時候,會清空快取
3.在不同的sqlsession也不會從快取中命中
怎麼開啟二級快取:
1.在對映檔案中,新增
2.在全域性配置檔案中,設定cacheenabled引數,預設已啟動。
注意:由於快取資料實在sqlsession呼叫close方法時,放入二級快取的,所以第乙個sqlsession必須先關閉,二級快取的物件必須序列化
執行update,insert,delete同樣會清空快取
如何關閉二級快取:
不開啟,或者在全域性的mybatis-config.xml中去關閉二級快取將cacheenabled設定為false
1、當我們執行乙個查詢語句的時候。mybatis會先去二級快取中查詢資料。如果二級快取中沒有。就到一級快取中查詢。
2、如果二級快取和一級快取都沒有。就發sql語句到資料庫中去查詢。
3、查詢出來之後馬上把資料儲存到一級快取中。
4、當sqlsession關閉的時候,會把一級快取中的資料儲存到二級快取中。
關閉二級快取 Mybatis一級快取 二級快取詳講
首先,我們先看一下這個標題 查詢快取 那就說明跟增 刪 改是沒有任何關聯的,只有在查詢時,才會遇到快取,增刪改不涉及!查詢快取目前mybatis中提供了兩個,分別是 一級快取 二級快取 所以,sqlsession的快取,是屬於一級快取 那,又有什麼用呢?比如,我們現在資料庫中有兩條資料,分別是張三跟...
mybatis查詢快取之一級快取和二級快取詳細解析
一級快取是mybatis預設就幫我們開啟的,我們不需要多做配置,但是我們得知道其中原理,否則我們也不知道怎麼使用,也不知道我們到底有沒有一級快取。上面第二部分說過一級快取的作用域是同乙個sqlsession,sqlsession的作用就是建立和資料庫的會話,我們對資料庫表的增刪改查都是通過sqlse...
mybatis 快取(一級和二級快取)
1.快取 好處 快取的使用演示 1 sql語句或查詢條件不同 2 分屬不同sqlsession物件 3 查詢前執行clearcache 4 提交事務 2.一級快取 3.二級快取 跟 web應用中 物件作用範圍類似。cacheenabled value true flushinterval 快取重新整...