MyBatis配置XML文件的层次结构。
注意:这些层次是不能够颠倒顺序的,如果颠倒顺序,MyBatis在解析XML文件的时候就会出现异常。
<?xml version="1.0" encoding="UTF-8"?>
<configuration> <!-- 配置 -->
<properties/> <!-- 属性 -->
<settings/> <!-- 设置 -->
<typeAliases/> <!-- 类型命名 -->
<typeHandlers/> <!-- 类型处理器 -->
<objectFactory/> <!-- 对象工厂 -->
<plugins/> <!-- 插件 -->
<environments> <!-- 配置环境 -->
<envoronment> <!-- 环境变量 -->
<transactionManager/> <!-- 事务处理器 -->
<dataSource/> <!-- 数据源 -->
</envoronment>
</environments>
<databaseIdProvider/> <!-- 数据库厂商标识 -->
<mappers/> <!-- 映射器 -->
</configuration>
MyBatis配置环境时,可以注册多个数据源,每个数据源分为两大部分:
- 一是数据库源的配置
- 另外一个是数据库事务的配置
例子:
<envirnoments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="autoCommit" value="false"/>
</transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/oa"/>
<property name="username" value="root"/>
<property name="password" value="learn"/>
</dataSource>
</environment>
</envirnoments>
分析上面的配置:
- environments中的属性default,标明在缺省的情况下,我们将启动哪个数据源配置;
- environment元素是配置一个数据源的开始,属性id是设置这个数据源的标志,以便MyBatis上下文使用它;
- transactionManager配置的是数据库事务,其中type属性有3种配置方式:
- JDBC,采用JDBC方式管理事务,在独立编码中我们经常使用;
- MANAGER,采用容器方式管理事务,在JNDI数据源中常用;
- 自定义,由使用者自定义数据库事务管理办法,适用于特殊应用;
- property元素则是可以配置数据源的各类属性,autoCommit=false,则是要求数据源不自动提交。
- dataSource标签,是配置数据源连接的信息,type属性是提供我们对数据库连接方式的配置,MyBatis提供了4种连接方式:
- UNPOOLED,非连接池数据库;
- POOLED,连接池数据库;
- JNDI,JNDI数据源;
- 自定义数据源;如果想要自定义数据源需要实现
org.apache.ibatis.datasource.DataSourceFactory
接口,并且进行配置:<datasource type="xxx.xxx.xxxSourceFactory">