执行流程解析
配置文件解析 configuration:
讲解解析流程之前先回顾一下myBatis 中配置文件的结构
mybatis-config.xml
<configuration>
<properties/>
<settting/>
<typeHandlers/>
<..../>
<mappers/>
</configuration>
mybatis-mapper.xml
<mapper >
<cache/>
<resultMap/>
<select/>
<update/>
<delete/>
<insert/>
</mapper>
配置文件的解析流程即是将上述XML描述元素转换成对应的JAVA对像过程,其最终转换对像及其关系如下图:
会话创建 SqlSession
首先我们还是先来了解一下会话对像的组成结构如下图:
方法执行 StatementHandler
一级缓存
1.必须是相同的SQL和参数
2.必须是相同的会话
3.必须是相同的namespace即同一个mapper
4.必须是相同的statement即同一个mapper接口中的同一个方法
5.查询语名中间没有执行 session.clearCache()方法
6.查询语名中间没有执行 insert update delete 方法(无论变动记录是否与缓存数据有无关系)