Mybatis 调用过程解读

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

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

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

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

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

缓存陷井?

还是那句话,你只看到了大佬轻松解决问题的光鲜,却不记得当初人家死磕Bug的痛苦。

万物皆入轮回,谁也躲不掉!

以上文章,均是我实际体验,写出来的笔记资料,不会出现全文盗用别人文章!烦请各位,支持下原创,请勿直接盗用,有条件的可以开通个会员支持下,谢谢!!!

Java Code Study » Mybatis 缓存问题

招聘、单纯问问题,都可以联系我

加我QQ 公司缺人,拉我入伙