mybatis一次查询过程的分析二

本文深入剖析了Mybatis的一次查询过程,从MappedStatement的获取开始,详细讲解了如何通过configuration根据statement ID获取MappedStatement。接着,重点探讨了在DefaultSqlSessionFactory的openSession方法中executor的创建,尤其是CachingExecutor的作用,它是处理二级缓存的关键。文章指出,CachingExecutor不仅涉及查询,还为后续的一级缓存分析奠定基础。下一部分将详细分析TransactionalCacheManager,以全面理解Mybatis的缓存逻辑。
摘要由CSDN通过智能技术生成

MappedStatement ms = configuration.getMappedStatement(statement);
这句就是根据statement的id获取MappedStatement。这里的executor是在创建sqlsession的是否创建的,在sqlsessionfactory,看DefaultSqlSessionFactory中的openSession方法
有很多的重载方法
在这里插入图片描述
最终都会走到configuration中newExecutor方法
在这里插入图片描述
protected boolean cacheEnabled = true;
最终我们拿到手的是CachingExecutor,这个类主要是处理二级缓存的,一级缓存在后面会说
在这里插入图片描述
直接看query方法
在这里插入图片描述
这节先到这,下一节先分析TransactionalCacheManager这个类,才能看懂缓存逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值