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-3.4.2-源码分析12:XML解析之mapperElement(root.evalNode("mappers"))
- MyBatis-3.4.2-源码分析1:解析XML之propertiesElement(root.evalNode("properties"))
- MyBatis-3.4.2-源码分析4:解析XML之pluginElement(root.evalNode("plugins"))
- MyBatis-3.4.2-源码分析5:解析XML之objectFactoryElement(root.evalNode("objectFactory"))
- MyBatis-3.4.2-源码分析9:XML解析之databaseIdProviderElement(root.evalNode("databaseIdProvider"))
- MyBatis-3.4.2-源码分析15:XML解析之buildStatementFromContext(context.evalNodes(‘select|insert|update|delete’
- MyBatis-3.4.2-源码分析18:XML解析之RoleMapper userMapper = sqlSession.getMapper(RoleMapper.class)
- MyBatis-3.4.2-源码分析2:解析XML之settingsAsProperties(root.evalNode("settings"))
- MyBatis-3.4.2-源码分析8:XML解析之environmentsElement(root.evalNode("environments"))
- MyBatis-3.4.2-源码分析17:XML解析之bindMapperForNamespace
- MyBatis-3.4.2-源码分析16:XML解析之SqlSessionFactory|SqlSession
- Mybatis3源码分析(三):解析mapper的xml配置文件
- MyBatis-3.4.2-源码分析7:解析XML之settingsElement(settings)
- mybatis源码学习之执行过程分析(2)——config.xml配置文件和mapper.xml映射文件解析过程
- MyBatis-3.4.2-源码分析11:XML解析之environmentsElement+Druid的解析准备工作:整合Druid
- Mybatis3源码分析(三):解析mapper的xml配置文件
- MyBatis-3.4.2-源码分析6:解析XML之objectWrapperFactoryElement & reflectorFactoryElement
- Mybatis3源码分析(14)-Sql解析执行-StatementHandler
- Mybatis 源码解析三、Mapper接口与mapper.xml文件绑定
- mybatis之XML解析源码分析