MyBatis入门之二级缓存以及ehcache使用

MyBatis的缓存机制

1.根据缓存的作用域和生命周期分为2中缓存策略:一级缓存,二级缓存

2.查询缓存的作用域是根据mapper的namespace划分的,相同的namespace的查询数据放在同一个缓存区,不同的namespace的缓存数据互不干扰

3.一旦sqlSession 连接关闭,一级缓存中的数据就会消失,而二级缓存还在

4.一级缓存是和sqlSession在同一线程共享数据,二级缓存是在不同线程(sqlsession)共享数据

5.一级缓存是不能关闭,只到sqlSession关闭

6.一级缓存查询的依据:查询的id相同(查询语句的id)并且sql语句相同,才会拿缓存中的数据

 

111124_jaSs_3032095.png111133_rcXb_3032095.png

1.增删改对一级缓存的影响:修改,删除,增加都会清空一级缓存(无论是否提交)

2.二级缓存机制是防止同一个sql id,相同的sql语句反复的执行

3.二级缓存的生命周期是和sqlSession一致的

4.开启内置的二级缓存需要2步:

a) 第一步:对实体进行序列化

b) 在映射文件中添加<cache/>标签

111206_qZ2P_3032095.png111212_M9TD_3032095.png

缓存命中率

111240_3BUo_3032095.png

11.增删改对二级缓存的影响:(默认是刷新缓存的也可以配置不刷新)

111257_v6u2_3032095.png

12.缓存的基本配置<eache/>

111316_wqdy_3032095.png

14.二级缓存的关闭分为2种:全局关闭,局部关闭

a)全局关闭:

111354_9mBt_3032095.png

b) 局部关闭:

111420_eYNz_3032095.png

15.二级缓存的使用原则:

a) 多个namespace不操作同一张表

b) 不要在关联关系表上执行增删改操作

c) 查询多与修改时使用二级缓存

16.第三方二级缓存ehcache(不需要序列化实体)

a)第一步:下载jar包

b) 第二步:映射文件配置

c) 第三步:导入ehcache配置文件

111514_3zV3_3032095.png111520_yY58_3032095.png111525_2iKA_3032095.png

17.二级缓存设计增删改不刷新缓存

 

 

 

 

转载于:https://my.oschina.net/goodyj/blog/790213

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值