mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存
設置延遲加載需要在mybatis.xml中設置
注:
侵入式延遲加載為真時是延遲加載
侵入式延遲加載為假時是深度延遲加載
<!-- 延遲加載和深度延遲加載 --><settings><!-- 延遲加載 --><setting name="lazyLoadingEnabled" value="true" /><!-- 侵入式延遲加載,默認值是true --><setting name="aggressiveLazyLoading" value="false" /></settings>?
一級緩存
注:
1.框架底層使用map集合存儲緩存
2.MyBatis查詢緩存機制。根據緩存區的作用域與生命周期,可劃分為兩種:一級緩存和二級緩存.MyBatis查詢緩存的作用域是根據映射文件的namespace劃分的,相同的namespace的mapper查詢數據放在同一個緩存區域。不同namespace下的數據互不干擾。無論是一級緩存還是二級緩存,都是按照namespace進行分別存放的.一級、二級緩存的不同之處在于,SqlSession一旦關閉,則SqlSession中的數據將不存在,即一級緩存就不復存在。而二級緩存的生命周期與真個應用同步,與SqlSession是否關閉無關.換句話說,一級緩存是在同一線程(同一SqlSession)間共享數據,而二級緩存是在不同線程(不同的SqlSession)間共享數據。
3.Mybatis一級緩存默認集成并開啟
4.MyBatis的查詢依據是:Sql的id+SQL語句
5.執行增刪改時會清空緩存,雖然 底層都是update但是,sql標簽必須對應操作,不然起到清空緩存的作用
?
二級緩存
1,開啟二級緩存3個條件
(1)在mybatis中設置cacheEnabled=true
(2)在Mapper文件中添加<cache/>標簽
(3)實體類必須實現serialize接口
?
轉載于:https://www.cnblogs.com/cnsdhzzl/p/6203571.html
總結
以上是生活随笔為你收集整理的mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT 使用高清晰
- 下一篇: BZOJ 2115 [Wc2011] X