-
一级缓存指的就是sqlsession,在sqlsession中有一个数据区域,是map结构,这个区域就是一级缓存区域。
- 一级缓存中的key是由sql语句、条件、statement等信息组成一个唯一值。
- 一级缓存中的value,就是查询出的结果对象。
-
二级缓存指的就是同一个namespace下的mapper
- 二级缓存中,也有一个map结构。具体的结构和一级缓存是一样的,key和value的结构都相同。
- 但是生命周期比一级缓存的生命周期要长。
一级缓存是默认使用的。 二级缓存需要手动开启。
一级缓存 (sqlsession缓存)
第一次查询会去缓存中去查,如果查不到,就查DB然后加入缓存。但是要是有增删改操作并且提交了,就会清空一级缓存。
一级缓存里面是一个hashmap:localCache 这个Map,key为 将Statement Id + Offset + Limmit + Sql + Params 等5个元素组合成一个CacheKey对象,并重写了他们的equals方法&#x