MyBatismybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存

注:

一流缓存

 

1.框架底层使用map集合存储缓存

注:

(3)实体类必须贯彻serialize接口

1,开启二级缓存3个规范

侵入式延迟加载为假时是深浅延迟加载

 

设置延迟加载需要在mybatis.xml中装置

(1)在mybatis中设置cacheEnabled=true

<!-- 延迟加载和深度延迟加载 -->
    <settings>
        <!-- 延迟加载 -->
        <setting name="lazyLoadingEnabled" value="true" />
        <!-- 侵入式延迟加载,默认值是true -->
        <setting name="aggressiveLazyLoading" value="false" />
    </settings>

侵入式延迟加载为真时是延迟加载

2.MyBatis询问缓存机制。遵照缓存区的功用域与生命周期,可划分为二种:一级缓存和二级缓存.MyBatis查询缓存的功效域是基于映射文件的namespace划分的,相同的namespace的mapper查询数据放在同一个缓存区域。不同namespace下的数码互不烦扰。无论是超级缓存仍然二级缓存,都是比照namespace举办分级寄存的.顶尖、二级缓存的不同之处在于,SqlSession一旦关闭,则SqlSession中的数据将不存在,即顶尖缓存就流失。而二级缓存的生命周期与真的应用同步,与SqlSession是否关闭无关.换句话说,一级缓存是在同一线程(同一SqlSession)间共享数据,而二级缓存是在不同线程(不同的SqlSession)间共享数据。

3.Mybatis一流缓存默认集成并开启

二级缓存

 

4.MyBatis的询问依照是:Sql的id+SQL语句

5.执行增删改时会清空缓存,即使底层都是update可是,MyBatis,sql标签必须呼应操作,不然起到清空缓存的法力**

(2)在Mapper文件中添加<cache/>标签

网站地图xml地图