MappedStatement ms = configuration.getMappedStatement(statement);
这句就是根据statement的id获取MappedStatement。这里的executor是在创建sqlsession的是否创建的,在sqlsessionfactory,看DefaultSqlSessionFactory中的openSession方法
有很多的重载方法
最终都会走到configuration中newExecutor方法
protected boolean cacheEnabled = true;
最终我们拿到手的是CachingExecutor,这个类主要是处理二级缓存的,一级缓存在后面会说
直接看query方法
这节先到这,下一节先分析TransactionalCacheManager这个类,才能看懂缓存逻辑。
mybatis一次查询过程的分析二
最新推荐文章于 2024-08-21 16:52:48 发布
本文深入剖析了Mybatis的一次查询过程,从MappedStatement的获取开始,详细讲解了如何通过configuration根据statement ID获取MappedStatement。接着,重点探讨了在DefaultSqlSessionFactory的openSession方法中executor的创建,尤其是CachingExecutor的作用,它是处理二级缓存的关键。文章指出,CachingExecutor不仅涉及查询,还为后续的一级缓存分析奠定基础。下一部分将详细分析TransactionalCacheManager,以全面理解Mybatis的缓存逻辑。
摘要由CSDN通过智能技术生成