MyBatis学习记录之缓存篇

  • 一级缓存
  • 二级缓存

维基百科上这样一段话:MyBatis支持声明式数据缓存(declarative data caching)。当一条SQL语句被标记为“可缓存”后,首次执行它时从数据库获取的所有数据会被存储在一段高速缓存中,今后执行这条语句时就会从高速缓存中读取结果,而不是再次命中数据库。

一级缓存:

一级缓存默认开启,作用在一个sqlSession上,即一个sqlSession执行两次相同语句查询只访问一次数据库,第二次执行查询语句时,会先在一级缓存中进行提取,如果不纯在才进行查询;在同个SqlSession中,查询语句相同的sql会被缓存,但是一旦执行新增或更新或删除操作,缓存就会被清除。实例jtlgb的博客有实例说明与源码的分析。

二级缓存:

二级缓存的作用域是全局的,二级缓存在SqlSession关闭或提交之后才会生效。二级缓存跟一级缓存不同,一级缓存不需要配置任何东西,且默认打开。 二级缓存就需要配置一些东西。

配置:一、在mapper文件上加上 <cache />,

二、属性设置 cacheEnabled 为true

# application.yml
mybatis:
    type-aliases-package: 
    type-handlers-package: 
    configuration:
        cacheEnabled: true

-----------------------------
@mapper 文件加上 @CacheNamespace注解

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值