“基础:配置文件SqlMapConfig.xml”的版本间差异
跳到导航
跳到搜索
(→关于) |
|||
第4行: | 第4行: | ||
'''SqlMapConfig.xml'''中配置的内容和顺序如下: | '''SqlMapConfig.xml'''中配置的内容和顺序如下: | ||
<syntaxhighlight lang="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> | |||
</syntaxhighlight> | |||
== properties == | == properties == |
2020年10月10日 (六) 02:40的版本
关于
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的属性值:
- SqlMapConfig.xml中不再需要对数据库连接参数硬编码;
- 其他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 将按照下面的属性加载顺序:【???】
- 在 properties 元素体内定义的属性首先被读取。
- 然后会读取 properties 元素中 resource 或 url 加载的属性,它会覆盖已读取的同名属性。
- 最后读取 parameterType 传递的属性,它会覆盖已读取的同名属性。
因此,通过parameterType传递的属性具有最高优先级,resource或 url 加载的属性次之,最低优先级的是 properties 元素体内定义的属性。