您的位置:首页 > 移动开发

MyBatis-3.4.2-源码分析14:XML解析之sqlElement(context.evalNodes("/mapper/sql"))

2017-04-06 00:00 1066 查看
这一节,主要是

sqlElement(context.evalNodes("/mapper/sql"))

源码如下:

private void sqlElement(List<XNode> list) throws Exception {
//从这里开始看
if (configuration.getDatabaseId() != null) {
sqlElement(list, configuration.getDatabaseId());
}
sqlElement(list, null);
}

断点位置在于

stop in org.apache.ibatis.session.Configuration.getDatabaseId

其中

sqlElement(list, configuration.getDatabaseId());

的解析过程如下:

private void sqlElement(List<XNode> list, String requiredDatabaseId) throws Exception {
// 开始遍历每1个子节点
for (XNode context : list) {
// 获取databaseId属性
String databaseId = context.getStringAttribute("databaseId");
// 获取id属性
String id = context.getStringAttribute("id");
// 添加上namespace构成完整路径
id = builderAssistant.applyCurrentNamespace(id, false);
// 继续处理
if (databaseIdMatchesCurrent(id, databaseId, requiredDatabaseId)) {
// 添加到这里
sqlFragments.put(id, context);
//添加进去
}
//结束
}
//结束
}

然后,继续处理

sqlElement(list, null);

这个一般不处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MyBatis
相关文章推荐