Spring框架
2020-08-05 14:07:29 0 举报
spring
作者其他创作
大纲/内容
清空
sqlSession1
一级缓存
第二次查询id为1的用户
mysql
1 select
第一次查询id为1的用户
二级缓存
sqlSession3
sqlSession2
2,写入
读取
执行UserMapper插入更新删除
修改,添加,删除用户操作
执行UserMapper查询
2 写入
缓存的数据结构是HashMap
Mybatis
一级缓存
二级缓存(Mapper)
UserMapper
一级缓存场景:在一个service类中包含很多mapper方法的调用,在一个事务中第一次调用mapper方法先从数据库中查找,第二次执行相同的Mapper方法会先从一级缓存中查找,这个service方法结束,sqlSession会自动关闭,同时清空对应的一级缓存。------------------------------------------------------------二级缓存场景:关闭一级缓存,开启二级缓存,sqlSession1去查找用户id为1的记录,查到之后会将数据保存在二级缓存中。sqlSession2去查找这条记录时直接从二级缓存中找。 区别:相同点:缓存的数据结构相同(HashMap)二级缓存的范围更大,多个sqlSession可以共享一个二级缓存-------------------------------------------------------------注意:二级缓存中查询结果映射成的对象需要实现序列化和反序列化接口,为了从缓存中取数据的时候要执行反序列化操作,因为存储介质可能是内存也可能是硬盘。以二进制序列保存对象会更加安全。
0 条评论
下一页