Toggle navigation
KANG's BLOG
Home
JAVA
MYSQL
KANG's BLOG
Let's have some fun
Mybatis两级缓存
1. 两级缓存 一级缓存(默认开启) 相同sqlSession中,执行相同的SQL查询时,第一次会去查询数据库,并写在缓存中,第二次会直接从缓存中取。 当执行SQL时候两次查询中间发生了增删改的操作,则SQLSession的缓存会被清空。 原理:Mybatis的内部缓存使用一个HashMap,key为hashcode+statementId+sql语句。Value为查询出来的结果集映射成的java对象。 SqlSession执行insert、update、delete等操作commit后会清空该SQLSession缓存。 二级缓存(默认不开启) 第一次调用mapper下的SQL去查询用户信息。查询到的信息会存到该mapper对应的二级缓存区域内。 第二次调用相同namespace下的mapper映射文件中相同的SQL去查询用户信息。会优先去对应的二级缓存内取结果。
Posted by KANG's BLOG Tuesday, March 15, 2022
FEATURED TAGS
database
distributed
http
java
jvm
lock
mq
mysql
nginx
ratelimiter
redis
tomcat
zookeeper
事务
多线程
架构
设计模式