MyBatis框架包括两种类型的XML文件,一类是配置文件,即mybatis-config.xml,另外一类是映射文件,例如Mapper.xml等。MyBatis的配置文件包含了会深深影响 MyBatis行为的设置和属性信息。配置文件的层次结构如下:
- properties(属性)
- settings(设置)
- typeAliases(类型别名)
(1).properties标签
properties resource="org/mybatis/example/config.properties">
<property name="username" value="root"/>
<property name="password" value="root"/>
</properties>
如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载:
(1)在 properties 元素体内指定的属性首先被读取;
(2)然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
(3)最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。
因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。
(2).settings标签
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
(3).typeAliases标签
类型别名是为Java类型设置的一个短的名字。它只和XML配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
<typeAliases>
<typeAlias alias="user" type="cn.mybatis.domain.User"/>
</typeAliases>
当这样配置时,user可以用在任何使用cn.mybatis.domain.User的地方。
也可以指定一个包名,MyBatis会在包名下面搜索需要的JavaBean
<typeAliases>
<package name="cn.mybatis.domain"/>
</typeAliases>