MyBatis缓存

MyBatis一级缓存,是基于sqlSession级别的,一个sqlSession代表和数据库的一次会话。数据被查出来就会被放在以及缓存中。

缓存里面其实就是一个map 方法入参都是Object类型。都被Cache接口定义好了。

MyBatis二级缓存,基于namespace级别的,当开启二级缓存。一个sqlsession会话建立连接查询部门1的信息,并将查询出来的数据记录存储在sqlsession的一级缓存中,该sqlsession关闭后又将一级缓存的内容放在了二级缓存中。当下一次的sqlsession来查询该部门的记录时,只要从二级缓存中获取数据。新的sqlssion进来后先找二级缓存的内容是否存在要查询的内容。

先看二级缓存再看一级缓存,没有在找数据库。(对缓存不专业,只不过是小型map)。

但有缓存接口,我们可以通过接口里面的putObject方法将数据缓存到redis中,通过getObject方法将数据从redis中获取出来。可以实现自定义缓存。

比较成熟的第三方缓存,Ehcache(java进程内的缓存框架)。MyBatis对其进行整合,mybatis提供了缓存接口,我们可以重新实现接口的方法。让Ehcache保存数据和查找数据

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值