MyBatis源码分析(xml解析及sqlsession获取)
2019-06-23 本文已影响12人
山东大葱哥
以下内容的公开课视频已经录制,需要的同学可留言
XML配置文件解析流程分析
断点调试源代码,跟踪sqlSessionFactory
的创建过程以及配置文件的解析流程。
SqlSessionFactoryBuilder
建造者模式,用来构建SqlSessionFactory
工厂。XMLConfigBuilder
、XMLMapperBuilder
类似。
SqlSessionFactory
是一个抽象工厂,DefaultSqlSessionFactory
抽象工厂的默认实现,这个工厂产生SqlSession
。
SqlSession
获取流程分析
SqlSession获取流程.png
DefaultSqlSession
中使用策略模式,根据场景选择不同的Executor
也就是策略,如BatchExecutor
、ReuseExecutor
、SimpleExecutor
等;
CachingExecutor
中使用了代理模式,真正的执行器还是上述三种执行器中一种,CachingExecutor
做了一些关于缓存的处理。如下:
public int update(MappedStatement ms, Object parameterObject) throws SQLException {
//刷新缓存完再update
flushCacheIfRequired(ms);
return delegate.update(ms, parameterObject);
}
你负责貌美如花