1:缓存的理解?

2:缓存分类使用

3:总结&下节预告

本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第二十二篇 缓存


一:缓存的理解及分类:

Mybatis的缓存,包括一级缓存和二级缓存

一级缓存指的就是sqlsession,在sqlsession中有一个数据区域,是map结构,这个区域就是一级缓存区域。一级缓存中的key是由sql语句、条件、statement等信息组成一个唯一值。一级缓存中的value,就是查询出的结果对象。

二级缓存指的就是同一个namespace下的mapper,二级缓存中,也有一个map结构,这个区域就是一级缓存区域。一级缓存中的key是由sql语句、条件、statement等信息组成一个唯一值。一级缓存中的value,就是查询出的结果对象。

一级缓存是默认使用的。

二级缓存需要手动开启。

图解缓存:

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_缓存_02

二:缓存分类使用

2.1:一级缓存的使用:

2.1.1:一级缓存的原理(session级别的)

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_缓存_04

2.1.2:测试1

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_二级缓存_06

测试2:

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_二级缓存_08

输出结果:

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存_10

2.2 二级缓存的使用

2.2.1:二级缓存原理

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_二级缓存_08

说明:二级缓存需要开启后,才可以使用。

2.2.2:开启二级缓存:

2.2.2.1:二级缓存的总开关

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_二级缓存_14

2.2.2.2:在对应mapper.xml中开启二级缓存

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_缓存_16

2.3:将对应POJO对象序列化

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存_18

2.4:测试类

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存_20

运行结果:

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_二级缓存_22

测试二:

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_缓存_24

运行结果二:

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存_26

2.5:mapper文件中二级缓存的禁用:

默认值是true

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_二级缓存_28

2.6:刷新缓存

框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存框架学习系列 mybatis 第二十二篇 mybatis缓存使用_一级缓存_30

三:总结&下节预告

总结:

通过本节学习,我们需要学会在mybaits中二级缓存的使用

下节预告:

在下节中我们将通过整合ehcache使用二级缓存