MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

XMLStatementBuilder

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

MyBatis 加载注解配置

org.apache.ibatis.builder.annotation.MapperAnnotationBuilder ,Mapper 注解构造器,负责解析 Mapper 接口上的注解

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

SqlNode 初始化

MyBatis 中的 scripting 模块,会根据用户传入的实参,解析映射文件中定义的动态 SQL 节点,并形成数据库可执行的 SQL 语句。之后会处理 SQL 语句中的占位符,绑定用户传入的实参

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

org.apache.ibatis.scripting.xmltags.DynamicContext ,动态 SQL ,用于每次执行 SQL 操作时,记录动态 SQL 处理后的最终 SQL 字符串

org.apache.ibatis.scripting.xmltags.SqlNode ,SQL Node 接口,每个 XML Node 会解析成对应的 SQL Node 对象

org.apache.ibatis.mapping.SqlSource ,SQL 来源接口。它代表从 Mapper XML 或方法注解上,读取的一条 SQL 内容

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode

org.apache.ibatis.builder.StaticSqlSource ,实现 SqlSource 接口,静态的 SqlSource 实现类

org.apache.ibatis.scripting.xmltags.DynamicSqlSource ,实现 SqlSource 接口,动态的 SqlSource 实现类

MyBatis 源码分析笔记 初始化02 statement && 注解配置 && SqlNode