Properties的设置格式
在Demo项目中使用的Mybatis-config.xml文件中的配置如下:
<span style="font-family:KaiTi_GB2312;"><?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 resource="com/samsung/mybatis/jdbc.properties">
<property name="username" value="chenzw"/>
<property name="password" value="1258577"/>
</properties>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/samsung/mybatis/tiger.xml"/>
</mappers>
</configuration>
</span>
上面配置文件中引用的jdbc.properties中的内容如下:
<span style="font-family:KaiTi_GB2312;">driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test
username=chenzw
password=7758521
</span>
Properties的加载顺序
Mybatis对于properties的加载顺序按照以下顺序:
1) 首先Mybatis会找到配置文件中的properties中的内容,例如上面的username=chenzw以及上面的password=1258577,在解析XML文件中的相关对象中的记录的就是配置文件中的properties中的内容。
2) 然后,Mybatis会找到Properties节点属性resource指向的内容,例如在上面的Demo中,该属性指向的内容为jdbc.properties文件,Mybatis就会解析上面的内容,然后得到Properties文件的内容,这个时候,会发现password发生了冲突,有两个不同值的password属性,这里,一定要记住Mybatis会以本次发现的为准,将password文件修改为7758521.
3)其实,这里的配置的所有的参数都会以一个记录的属性值作为参数传递给相关的方法来执行的,调用的方法在Mybatis的API文档中有描述如下:
SqlSessionFactoryfactory = sqlSessionFactoryBuilder.build(reader, props);
SqlSessionFactoryfactory = sqlSessionFactoryBuilder.build(reader, environment, props);
所以,如果在参数中发生了变化,就等于考状元的时候,在最后一步被人顶替了,前面做了啥惊天动地的事情,都成了无用功。