文档章节

MyBatis-3.4.2-源码分析9:XML解析之databaseIdProviderElement(root.evalNode("databaseIdProvider"))

强子1985
 强子1985
发布于 2017/03/29 01:58
字数 150
阅读 15
收藏 1

接下来,讲解

databaseIdProviderElement(root.evalNode("databaseIdProvider"))
private void databaseIdProviderElement(XNode context) throws Exception {
		//开始解析
		DatabaseIdProvider databaseIdProvider = null;
		//如果设置了
		if (context != null) {
			//提取type类型
			String type = context.getStringAttribute("type");
			// awful patch to keep backward compatibility
			//打一个补丁
			if ("VENDOR".equals(type)) {
				type = "DB_VENDOR";
			}
			//获取属性
			Properties properties = context.getChildrenAsProperties();
			//构造实例
			databaseIdProvider = (DatabaseIdProvider) resolveClass(type).newInstance();
			//设置属性
			databaseIdProvider.setProperties(properties);
			//here
		}
		//继续处理
		//提取数据源的对象
		Environment environment = configuration.getEnvironment();
		//如果都不为空
		if (environment != null && databaseIdProvider != null) {
			//这是要干嘛?
			//其实就是说,返回什么数据库
			String databaseId = databaseIdProvider.getDatabaseId(environment.getDataSource());
			//设置
			configuration.setDatabaseId(databaseId);
			//打到配置
			//结束
		}
	}

 

© 著作权归作者所有

共有 人打赏支持
强子1985

强子1985

粉丝 890
博文 1261
码字总数 932336
作品 8
南京
架构师
私信 提问
Mybatis执行流程(一)

搭建一个简单的Mybatis+Maven项目 Maven依赖 代码 配置文件 通过SqlSessionFactory获取SqlSession 执行流程图 源码走读 获取reader 获取SqlSessionFactory build()方法 解析配置返回configu...

wjk_snail
2016/06/22
57
0
MyBatis 源码整理

如何构建SqlSessionFactory -->SqlSessionFactoryBuilder().build(reader); 多态 重载 核心--创建XMLConfigBuilder 通过它得到Configuration配置对象。然后利用对象作为参数生产SqlSessionF...

zheng_pat
2015/09/23
24
0
mybatis_初始化过程源码解析

总览 初始化过程 xml解析器结构 创建SqlSessionFactory 通过SqlSessionFactoryBuilder创建SqlSessionFactory(构建器模式): 进入SqlSessionFactoryBuilder类: 核心就是通过XMLConfigBuilder解...

grace_233
2018/09/14
0
0
品读Mybatis源码---(1)解析配置文件

Mybatis,用了这么久,背景自不用说。我还记得,第一次使用,还在成铁科研,做电务那个OA系统的时候,在二代、罗尼玛的带领下,首次接触到的。由于之前的工程一直使用Hibernate,一下切换到M...

心中的理想乡
02/06
0
0
【深入浅出MyBatis系列二】配置简介(MyBatis源码篇)

深入浅出MyBatis系列 【深入浅出MyBatis系列一】MyBatis入门 【深入浅出MyBatis系列二】配置简介(MyBatis源码篇) 【深入浅出MyBatis系列三】Mapper映射文件配置 【深入浅出MyBatis系列四】...

陶邦仁
2015/12/22
2.2K
3

没有更多内容

加载失败,请刷新页面

加载更多

指针数组和数组指针的区别

这两个名字不同当然所代表的意思也就不同。我刚开始看到这就吓到了,主要是中文太博大精深了,整这样的简称太专业了,把人都绕晕了。从英文解释或中文全称看就比较容易理解。 指针数组:arr...

天王盖地虎626
13分钟前
0
0
Qt那些事0.0.18

今天要记一下Qt中的Resource。自我感觉理解的不错,但是还会难免有谬误,在日后有可能会更新,也有可能不会。 小声的念叨一句,女人心,海底针。 今天就直接跳过了关于QML在qrc文件中的介绍,...

Ev4n
21分钟前
0
0
深入解析js的作用域、预解析机制

虽然,ES6在我们工作中应用得越来越广泛,但是还是很多项目保留着ES5的写法,所以,今天,带着大家重新巩固下ES5下的作用域及预解析机制。 概念: 作用域:域,指的是一个空间、范围、区域,...

前端攻城老湿
24分钟前
0
0
Spring Cloud Feign - 声明式 REST Client

1、Feign是什么 声明式REST client,来自NetFlix。 允许你编写无实现代码调用REST services 替换RestTemplate(甚至更简单) Spring Cloud 为使用Feign提供了包装器 2、怎样使用Feign 对比:...

Benz001
29分钟前
0
0
前端、后端和全栈到底不该学什么

1、前言 在职业规划咨询过程中经常会被问到这样的问题: 老师,我是该深入钻研专精一门,走技术大牛路线,还是所有都要精通,做一个全栈工程师? 类似问题的变种还有,老师我是不是该30岁最迟...

前端攻城小牛
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部