Mybatis查询缓存

1.缓存的作用

      主要是为了提高查询访问速度。将用户对同一数据的重复查询过程简化,不再每次均从

数据库查询获取结果数据,从而提高访问速度。

    mybatis根据缓存区的作用域可分为:一级缓存和二级缓存。

    从缓存中查询依据:相同的sql 的 id  、sql语句

2.一级缓存

   生命周期:与SqlSession同步(同一线程间共享数据) 

   增删改会刷新(即清空)缓存

3.二级缓存   

     生命周期:与整个应用同步(不同线程间共享数据)
    增删改会刷清空二级缓存;对于二级缓存的清空,实质上是对所查找key对应的value
    置为null,另从DB中查找的条件是:
    1.缓存中不存在相应的key;
    2.缓存中存在该key对应的对象,但其value为null。

   二级缓存设置不清空缓存:

         在sql语句中,增删改语句<insert>、<delete>、<update>标签中, 默认 flushCache="true",改为false即可。

4.二级缓存的关闭

  1.全局设置:在mybatis.xml配置文件中,即所有的都不使用缓存

<settings>
    <setting name="cacheEnabled" value="false"/>
</settings>

2.局部设置:只针对某个查询语句是关闭的,整个应用却是开启的:

                     默认 useCache="true"是开启的

<select id="selectAllStudents" resultType="Student" useCache="false">

 

4.二级缓存使用原则:

    1.多个namespace不要操作同一张表;
    2.不要在关联关系表上执行增删改操作;
    3.查询多于修改时可以使用二级缓存。

5.使用ehcache二级缓存

1.下载ehcache二级缓存:下载地址https://github.com/mybatis/ehcache-cache/releases

      导入相关jar包,ehcache-core-2.6.8.jar和mybatis-ehcache-1.0.3.jar两个jar包

2.在mapper.xml中进行配置:

<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>

3.在src中导入ehcache.xml文件

   该文件在ehcache-core-2.6.8jar包中,解压即可看到ehcache-failsafe.xml改名即可。

注: mybatis内置二级缓存,只需在mapper.xml中配置<cache/>即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RWTHeart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值