Mybatis 配置文件大多数名为:SqlMapConfig.xml 。当然你也可以任意文件名。
一、properties属性
将数据库连接参数单独配置在 db.properties 中,只需要在 SqlMapConfig.xml 中加载 db.properties 的属性值,在 SqlMapConfig.xml 中就不需要对数据库连接参数硬编码。
将数据库连接参数只配置在 db.properties 中,好处:
- 方便对参数进行统一管理。
- 其它 xml 文件也可以引用该 db.properties。
在 sqlMapConfig.xml 加载属性文件:
properties特性:
MyBatis 将按照下面的顺序来加载属性:- 在 properties 元素体内定义的属性首先被读取。
- 然后会读取 properties 元素中 resource 或 url 加载的属性,它会覆盖已读取的同名属性。
- 最后读取 parameterType 传递的属性,它会覆盖已读取的同名属性。
二、typeAliases 自定义别名
定义别名 在输入输出映射中 就可以不用写很长的路径名了。
2.1 单个别名定义
<typeAliases> <!-- type:类型的路径 alias:别名--> <typeAlias type="com.po.User" alias="user"/> </typeAliases>
2.2 批量别名定义(常用)
<typeAliases> <!-- mybatis 自动扫描包中的实体类(po类),自动定义别名,别名就是类名(首字母大小写都可以) --> <package name="com.po" /> </typeAliases>
三、mapper.xml 映射加载
3.1 单个文件加载 ( resource )
<mappers> <mapper resource="sqlmap/UserMapper.xml" /> </mappers>
3.2 单个文件加载 ( class )
通过 mapper 接口加载映射文件。
规范:需要保持 mapper 接口名 和 mapper.xml 映射文件名一致,且在同一个目录下。
规范前提:使用的时 mapper 代理方法。
<mappers> <mapper class="sqlmap.UserMapper" /> </mappers>
3.3 批量文件加载 ( package )推荐
指定 mapper 映射文件的包名,mybatis 自动扫描包下面的 mapper 接口 和 映射文件。
规范:需要保持 mapper 接口名 和 mapper.xml 映射文件名一致,且在同一个目录下。跟大小写没有关系。
规范前提:使用的时 mapper 代理方法。
<mappers> <package name="sqlmap"/> </mappers>
四、小结:
- 针对 properties 给出的建议:(1)不要在 properties 元素体内添加任何属性值,只将属性值定义在 properties 文件中;(2)在 properties 文件中定义属性名要有一定的特殊性,如:XXXXX.XXXXX.XXXX。
- 针对别名,建议使用 package 批量扫描处理。
- 针对映射文件的加载,建议使用 package 批量扫描加载。