Mybatis的缓存机制
Mybatis的缓存机制分为一级缓存和二级缓存
1.一级缓存:一级缓存的作用域是sqlSession会话级,相当于JDBCConnection连接。一级缓存默认开启,用户不能手动配置。当在同一个sqlSession中执行两次相同的sql语句时,第一次执行完毕会将数据库中查询的数据写到缓存(内存),第二次查询时会从缓存中获取数据,不再去底层数据库查询,从而提高查询效率;
2.二级缓存:二级缓存的作用域为同一个mapper的namespace,是跨sqlSession的,同一个namespace中不同的查询SQL可以从二级缓存中命中。二级缓存默认关闭,但是可以通过配置进行开启。
二级缓存的对象必须序列化,例如:User对象必须实现Serializable接口。
Mybatis中,执行select时,查询数据会被缓存;当执行insert、update、delete等操作的时候,缓存则会被清除。