Mybatis源码-SqlSource接口

本文详细介绍了MyBatis中SqlSource的创建流程,包括动态SQL标签处理器的初始化、动态SQL的解析以及SqlSource接口的实现类。SqlSource通过XMLLanguageDriver的createSqlSource方法创建,最终将SQL信息封装进StaticSqlSource。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SqlSource创建流程

入口:XMLLanguageDriver#createSqlSource

@Override
public SqlSource createSqlSource(Configuration configuration, XNodescript, Class<?> parameterType) {
	// 初始化了动态SQL标签处理器
	XMLScriptBuilder builder = new XMLScriptBuilder(configuration, script, parameterType);
	// 解析动态SQL
	return builder.parseScriptNode();
}

SqlSource接口的几个实现类

在这里插入图片描述

DynamicSqlSource:

主要是封装动态SQL标签解析之后的SQL语句和带有${}的SQL语句,${}和动态标签中的表达式是都OGNL表达式,都是使用OGNL表达式从入参对象中获取

RawSqlSource:

主要封装带有#{}的SQL语句或者可直接执行的SQL语句,则使用该SqlSource来封装SQL信息

StaticSqlSource:

是BoundSql中要存储SQL语句的一个载体,上面两个SqlSource的SQL语句,最终都会存储到该SqlSource实现类中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值