知識點:mybatis緩存相關的設置和屬性
重點:每次執行增刪改操作后,一二級緩存被清空,是因為標簽設置默認屬性為 flushCache="true"
(1)
<!-- 全局映射器啟用緩存 -->
<setting name="cacheEnabled" value="true"/>
中的 cacheEnabled:false 關閉二級緩存(一級緩存是可用的)
(2)
mapper.xml中每個select標簽都有一個useCache="true",為false時,不使用緩存(一級緩存依然可以使用,二級緩存不能使用)
如果,設置單個select標簽不使用二級緩存,可設置 useCache="false"
(3) a.每個增刪改標簽有:都有 flushCache="true" 默認為true
所以每次增刪改執行完成,會清除緩存,一級緩存清空,二級緩存也會被清空
b.查詢標簽 flushCache="false" 默認為false
如果設置 flushCache="true" ,每次查詢之后都會清空緩存,緩存是沒有被使用的
(4)sqlSession.clearCache():只是清除session的一級緩存,二級緩存不清除
(5)<setting name="localCacheScope" value="SESSION"/>
localCacheScope:本地緩存作用域(一級緩存SESSION),當前會話的所有數據會保存在會話緩存中
value=" STATEMENT":可以禁用一級緩存