前言
在MtBatis中,有一个核心的配置文件SqlMapConfig.xml,当然,这个文件名可以自定义,我们来对配置文件中的各个标签和属性详细了解一下.
正文
●配置内容:
首先,sqlmapconfig.xml文件中的所有配置的内容必须按照以下的先后顺序来进行配置:
- properties(属性)
- settings(全局配置参数)
- typeAliases(类型别名)
- typehandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境集合属性对象)
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源) - mapper(映射器)
●properties(属性)
SqlMapConfig.xml可以引用java属性文件中的配置信息:
在classpath中定义属性文件db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/jdbc?characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456
如上定义以后,就可以在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>
</properties>
需要注意的是,mybatis将按照以下的顺序来加载属性:
1. 在properties元素体内定义的属性首先被读取.
2. 接着会读取properties标签内resource或者url加载的属性,而且它会覆盖已经读取的同名属性.
●typeAliases(类型别名)
MyBatis默认支持的别名有以下几种:
自定义别名
要自定义别名,就要在SqlMapConfig.xml文件中配置:
<typeAliases>
<!-- 单个别名定义 -->
<typeAlias alias="user" type="com.mybatis.po.User"/>
<!-- 批量别名定义,扫描整个包下的类,别名为类名(首字母大写或小写都可以) -->
<package name="com.mybatis.po"/>
<package name="其它包"/>
</typeAliases>
●mapper(映射器)
配置这个属性来加载mapper映射文件
<mapper resource="sqlmap/User.xml" />
代表相对于类路径的资源<mapper class="com.mybatis.mapper.UserMapper"/>
配置mapper接口的类路径,这种配置的方法要求mapper接口名称和mapper映射文件名称相同,且放在一个目录中.<package name="com.mybatis.mapper"/>
注册指定的包下面的所有接口,这种配置的方法要求mapper接口名称和mapper映射文件名称相同,且放在一个目录中.这种方式适合多个接口的情况来一次性扫描.
总结
了解SqlMapConfig.xml文件中的每一个配置项的意义,灵活地使用,能方便我们的开发,也能利于项目的后期维护.