“基础:配置文件SqlMapConfig.xml”的版本间差异

来自Wikioe
跳到导航 跳到搜索
第17行: 第17行:


== properties ==
== properties ==
SqlMapConfig.xml可以引用java属性文件中的配置信息。<br/>
将数据库连接等参数单独配置在配置文件(如:db.properties)中,就可以在SqlMapConfig.xml中加载db.properties的属性值:
# SqlMapConfig.xml中不再需要对数据库连接参数硬编码;
# 其他xml也可以引用该配置文件,便于参数的同一管理;
在classpath下定义'''db.properties'''文件:
<syntaxhighlight lang="properties">
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=mysql
</syntaxhighlight>
SqlMapConfig.xml:
<syntaxhighlight lang="xml">
<properties resource="db.properties"/>
...
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
</syntaxhighlight>
MyBatis 将按照下面的'''属性加载顺序''':【???】
# 在 properties 元素体内定义的属性首先被读取。
# 然后会读取 properties 元素中 resource 或 url 加载的属性,它会覆盖已读取的同名属性。
# 最后读取 parameterType 传递的属性,它会覆盖已读取的同名属性。
因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,最低优先级的是 properties 元素体内定义的属性。
== settings ==
== settings ==
== typeAliases ==
== typeAliases ==
== typeHandlers ==
== typeHandlers ==
== mappers ==
== mappers ==

2020年10月10日 (六) 02:37的版本


关于

SqlMapConfig.xml中配置的内容和顺序如下:

  1. properties(属性)
  2. settings(全局配置参数)
  3. typeAliases(类型别名)
  4. typeHandlers(类型处理器)
  5. objectFactory(对象工厂)
  6. plugins(插件)
    environments(环境集合属性对象)
    environment(环境子属性对象)
    transactionManager(事务管理)
    dataSource(数据源)
  7. mappers(映射器)

properties

SqlMapConfig.xml可以引用java属性文件中的配置信息。
将数据库连接等参数单独配置在配置文件(如:db.properties)中,就可以在SqlMapConfig.xml中加载db.properties的属性值:

  1. SqlMapConfig.xml中不再需要对数据库连接参数硬编码;
  2. 其他xml也可以引用该配置文件,便于参数的同一管理;


在classpath下定义db.properties文件:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=mysql

SqlMapConfig.xml:

	<properties resource="db.properties"/>
	
	...
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC"/>
			<dataSource type="POOLED">
				<property name="driver" value="${jdbc.driver}"/>
				<property name="url" value="${jdbc.url}"/>
				<property name="username" value="${jdbc.username}"/>
				<property name="password" value="${jdbc.password}"/>
			</dataSource>
		</environment>
	</environments>


MyBatis 将按照下面的属性加载顺序:【???】

  1. 在 properties 元素体内定义的属性首先被读取。
  2. 然后会读取 properties 元素中 resource 或 url 加载的属性,它会覆盖已读取的同名属性。
  3. 最后读取 parameterType 传递的属性,它会覆盖已读取的同名属性。

因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,最低优先级的是 properties 元素体内定义的属性。

settings

typeAliases

typeHandlers

mappers