ibatis源码浅析- 初始化

时间:2021-09-17 19:37:30

以SqlMapClientBuilder类的buildSqlMapClient方法为初始化入口, 实例代码

String resource = "ibatis/SqlMapConfig.xml";
Reader reader = Resources.getResourceAsReader( resource );
SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);


初始化过程 主要包括

1. 初始化全局配置(sqlMapConfig文件) 事务 DataSource等

2. sqlMap 文件初始化

   类图

ibatis源码浅析- 初始化

  * 全局配置初始化时序图

ibatis源码浅析- 初始化

 以SqlMapConfigParser为核心主干 解析SqlMapConfig文件  解析后的值保存的到XmlParserState类中

 同时也初始化了SqlMapClientImpl, SqlMapExecutorDelegate等核心类

 * sqlMap文件初始化时序图

  sql节点

  ibatis源码浅析- 初始化

  parameterMap节点

   ibatis源码浅析- 初始化

  resultMap节点

  ibatis源码浅析- 初始化

  statement  insert  select等节点

  ibatis源码浅析- 初始化

ibatis源码浅析- 初始化

 sqlmap文件解析主要以SqlMapParser 为核心主干  解析完成后 最终会保存到SqlMapExecutorDelegate类   的  mappedStatements, cacheModels, resultMaps, parameterMaps 四个map集合中