“基础:配置文件SqlMapConfig.xml”的版本间差异
跳到导航
跳到搜索
(→关于) |
|||
第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中配置的内容和顺序如下:
- properties(属性)
- settings(全局配置参数)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境集合属性对象)
- environment(环境子属性对象)
- transactionManager(事务管理)
- dataSource(数据源)
- environments(环境集合属性对象)
- mappers(映射器)
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 元素体内定义的属性。