Mybatis 调用过程解读

  • 每次与数据库的连接都会优先走缓存中查找
  • 先查询二级缓存再去查询一级缓存,都没有命中才会去查询数据库
  • 二级缓存是以配置文件 <namespace>为单位的开启的,是在SqlSession 共享的,容易出现赃读、脏写,不建议使用!!!
  • 一级缓存是SqlSession独享的,默认开启,建议开启

什么是一级缓存?(默认开启)

当我们连续通过Mybatis 查询同一条Sql的时候两次,在短时间内,只会在第一次查询时会走SQL,第二次查询,就不会出现连接数据库(Opening JDBC Connection)查询的问题了!第二次使用的是 一级缓存!

什么是二级缓存?(默认不开启)

如何开启呢?在mapper.xml 添加<catch> </catch>

缓存陷井?