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

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


'''SqlMapConfig.xml'''中配置的内容和顺序如下:
'''SqlMapConfig.xml'''中配置的内容和顺序如下:
<syntaxhighlight lang="xml" line="1">
<syntaxhighlight lang="properties" line="1">
<?xml version="1.0" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

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


关于

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

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>			<!-- 配置 -->
	<properties /> 			<!-- 属性 -->
	<settings /> 			<!-- 设置 -->
    <typeAliases /> 		<!-- 类型命名 -->
    <typeHandlers /> 		<!-- 类型处理器 -->
    <objectFactory /> 		<!-- 对象工厂 -->
    <plugins /> 			<!-- 插件 -->
    <environments> 			<!-- 配置环境 -->
        <environment> 			<!-- 环境变量 -->
            <transactionManager /> 	<!-- 事务管理器 -->
            <dataSource /> 			<!-- 数据源 -->
        </environment>
    </environments>
    <databaseIdProvider /> 	<!-- 数据库厂商标识 -->
    <mappers /> 			<!-- 映射器 -->
</configuration>

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