缓存

1.1.  什么是缓存

缓存就是将数据放在内存的缓冲区或文件上.查询时,如果数据已经存在,就不会再去查询数据库.

 

1.2.  缓存的作用

将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。

 

1.3.  缓存的分类

 

mybatis一级缓存是一个SqlSession级别,sqlsession只能访问自己的一级缓存的数据,二级缓存是跨sqlSession,是mapper级别的缓存,对于mapper级别的缓存不同的sqlsession是可以共享的。

 

1.4.  一级缓存

一级缓存默认是打开的一级缓存就是会话(Session)级别的缓存,就是说,同一个会话数据会缓存在缓冲区,只要会话(Session)不关闭,不管查询N次数据库,其实都是只查询了一次.

 

关闭一级缓存三种方式

1.通过session.clearCache();

2.操作数据库(增删改) commit()操作

3.通过关闭session.close();

 

 

1.1.1.1.5.  二级缓存

Mybatis里面,二级缓存就是文件级别的缓存.就是将每一个mapper映射文件查询的结果缓存在缓存区.即使关闭了会话(session),缓存也还在.

 

默认情况:只要发生了增,删,改,才会清除缓存.

 

2.1.          配置二级缓存的步骤

1.必须将缓存的实体类加上序列化接口

import java.io.Serializable;

 

2.映射文件配置缓存的支持

 

3.配置启动二级缓存,新版本已经是true(可以不配)

 

 

2.2.          禁用二级缓存

  对于查询频率较高的sql,需要禁用二级缓存。

  useCache="false"

2.3.          刷新二级缓存

 增,删,改操作(commit操作)刷新缓存

     在insert/delete/update设置 flushCache="false"

2.4.          二级缓存应用场景

对于访问多的查询请求且用户对查询结果实时性要求不高,此时可采用mybatis二级缓存技术降低数据库访问量,提高访问速度,业务场景比如:耗时较高的统计分析sql、电话账单查询sql等。

 

2.5.  Mybatis整合第三方缓存框架ehcache

配置

1.引入ehcache的jar包

2.配置mapper里的cache标签

 

注意事项:

  Ehcache需要使用slf4j的日志支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值