MyBatis的XML配置文件包含了影响MyBatis行为甚深的设置和属性信息。XML文档的高层级结构如下:
----configuration配置
--------properties属性
--------settings设置
--------typeAliases 类型命名
--------typeHandlers 类型处理器
--------objectFactory对象工厂
--------plugins插件
--------environments环境
------------environment环境变量
----------------transactionManager 事务管理器
----------------dataSource数据源
--------映射器
properties
这些是外部化的,可替代的属性,这些属性也可以配置在典型的Java属性配置文件中,或者通过properties元素的子元素来传递。例如:
其中的属性就可以在整个配置文件中使用,使用可替换的属性来实现动态配置。比如:
如果在这些地方,属性多于一个的话,MyBatis按照如下的顺序加载它们:
在properties元素体内指定的属性首先被读取。
从类路径下资源或properties元素的url属性中加载的属性第二被读取,它会覆盖已经存在的完全一样的属性。
作为方法参数传递的属性最后被读取,它也会覆盖任一已经存在的完全一样的属性,这些属性可能是从properties元素体内和资源/url 属性中加载的。
因此,最高优先级的属性是那些作为方法参数的,然后是资源/url 属性,最后是properties元素中指定的属性
Settings
这些是极其重要的调整,它们会修改MyBatis在运行时的行为方式。下面这个表格描述了设置信息,它们的含义和默认值。
一个设置信息元素的示例,完全的配置如下所示:
typeAliases
类型别名是为Java类型命名一个短的名字。它只和XML配置有关,只用来减少类完全限定名的多余部分。例如:
使用这个配置,“Blog”可以任意用来替代“domain.blog. Blog”所使用的地方。 对于普通的Java 类型,有许多内建的类型别名。它们都是大小写不敏感的,由于重载的名字,要注意原生类型的特殊处理。
typeHandlers
无论是MyBatis在预处理语句中设置一个参数,还是从结果集中取出一个值时,类型处理器被用来将获取的值以合适的方式转换成Java类型。下面这个表格描述了默认的类型处理器。