缓存的作用就是降低数据库的使用率,来减轻数据库的负担。我们平常的操作一般都是查>改,所以数据库的有些查操作是重复的,如果一直使用数据库就会有负担。Mybatis也会做缓存,也会有一级缓存和二级缓存:一级缓存:是SqlSession级别的缓存,使用HashMap数据结构来用于存储缓存数据的二级缓存:是... ...
分类:
其他好文 时间:
2020-02-08 19:42:35
阅读次数:
720
Mybatis一级、二级缓存 一级缓存: 同一个SqlSession对象 第二次访问时,不再查询数据库,直接从sqlSession中取值。 如果执行 则清理,一级缓存 二级缓存: Mybatis自带二级缓存,同一个namespace生成的mapper对象, namespace的值就是接口的全类名,通 ...
分类:
其他好文 时间:
2020-02-07 01:37:45
阅读次数:
86
在对数据库进行噼里啪啦的查询时,可能存在多次使用相同的SQL语句去查询数据库,并且结果可能还一样,这时,如果不采取一些措施,每次都从数据库查询,会造成一定资源的浪费,所以Mybatis中提供了一级缓存和二级缓存来解决这个问题,通过把第一次查询的结果保存在内存中,如果下次有同样的语句,则直接从内存中返 ...
分类:
其他好文 时间:
2020-01-28 19:14:04
阅读次数:
140
二级缓存(全局缓存):基于namespace级别的缓存,一个namespace对应一个二级缓存。 工作机制: 一个会话,查询一条数据,这条数据会放在当前会话的一级缓存中; 如果会话关闭,该会话对应的一级缓存就消失了; 可以使用二级缓存将保存之前的一级缓存,新的会话要查询相同的信息就可以从二级缓存中获 ...
分类:
其他好文 时间:
2020-01-22 12:57:07
阅读次数:
51
基本概念 一级缓存与session绑定,只存在于session生命周期内,从数据库中查询到的值会保存到一级缓存中,当session关闭后,会保存到二级缓存中,一级缓存默认是开启的。 二级缓存存在于sqlSessionFactory生命周期内,多个session共享二级缓存,二级缓存保障了在sessi ...
分类:
其他好文 时间:
2020-01-20 19:05:31
阅读次数:
84
1.从缓存中。优先从一级缓存中拿,有则返回。 如果没有,则从二级缓存中获取,有则返回。 如果二级缓存中拿不到,则从三级缓存中拿,能拿到,则从三级缓存中删除,移到二级缓存。 如果三级缓存也没有,则返回null. 2. 如果是单例模式, 则走createBean 的流程,进行bean对象的实例化。 2. ...
分类:
编程语言 时间:
2020-01-20 09:35:22
阅读次数:
110
在实现MyBatis的二级缓存时,遇到此异常,其原因是实体类未实现 接口。 异常: 解决: ...
分类:
编程语言 时间:
2020-01-16 23:55:00
阅读次数:
162
以前面的博客为基础,最近一篇为Spring Boot 入门(十):集成Redis哨兵模式,实现Mybatis二级缓存。本篇博客主要介绍了Spring Boot集成 Web Socket进行日志的推送,并实时显示在页面上。 1.导入jar包 第一个jar包是websocket的,第二个jar包是关于环 ...
分类:
编程语言 时间:
2020-01-16 23:45:12
阅读次数:
98
第四天:mybatis的缓存和注解开发 mybatis中的加载时机(查询的时机) mybatis中的一级缓存和二级缓存 mybatis的注解开发 单表CRUD 多表查询 一、今日内容概要 1、Mybatis中的延迟加载 问题:在一对多中,当我们有一个用户,它有100个账户。 在查询用户的时候,要不要 ...
分类:
其他好文 时间:
2020-01-16 20:30:50
阅读次数:
99
本片文章续《Spring Boot 入门(九):集成Quartz定时任务》。本文主要基于redis实现了mybatis二级缓存。较redis缓存,mybaits自带缓存存在缺点(自行谷歌)。本文是基于docker安装redis主从模式。 1.redis安装 (1)首先安装redis集群模式,建立re ...
分类:
编程语言 时间:
2020-01-14 09:37:25
阅读次数:
75