sqlSource接口中最底层的,最基础的是: StaticSqlSource,里面sql字段用于存放解析好的sql,比如将'#{}'替换为“?”占位符
BoundSql getBoundSql(Object parameterObject);
RawSqlSource--.>StaticSqlSource-- >sql
常规的解析Mapper.xml的时候,我们创建SqlSource对象:
XMLStatementBuilder.parseStatementNode()
//XMLScriptBuilder类
public SqlSource parseScriptNode() {
MixedSqlNode rootSqlNode = parseDynamicTags(context);
SqlSource sqlSource;
if (isDynamic) {
sqlSource = new DynamicSqlSource(configuration, rootSqlNode);
} else {
sql