MyBatis:mybatis-config.xml配置文件详解
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>
configuration(配置)
properties(属性)
可以通过properties属性引入外部的配置信息
- 新增db.propertis配置文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123
- 引入外部配置文件db.properties
在properties属性中也可以配置属性,但外部配置文件的优先级更高。
<!--mybatis可以使用properties来引入外部的properties配置文件的内容:
resource:引入类路径下的资源
url:引入网络路径或者磁盘路径下的资源
-->
<properties resource="db.properties">
<!--在properties属性中也可以配置属性,但外部配置文件的优先级更高。-->
<property name="username" value="root"/>
<property name="password" value="123"/>
</properties>
settings(设置)
<!-- 由于全局配置中:jdbcTypeForNull=OTHER,oracle不支持,以下两种方式:
1、#{address,jdbcType=NULL};
2、jdbcTypeForNull=NULL
-->
<settings>
<!-- 开启驼峰命名 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="jdbcTypeForNull" value="NULL"/>
</settings>
typeAliases(类型别名)
<!-- 设置别名 -->
<typeAliases>
<!--默认别名为类名小写,也可以使用alias进行任意别名设置-->
<!--<typeAlias type="com.kw.pojo.Employee" alias="emp"/> -->
<!--批量使用别名,默认别名为类名小写 -->
<!--别名使用时不区分大小写-->
<package name="com.kw.pojo"/>
<!--在批量起别名的情况下,可以使用@Alias注解为某个类型指定新的别名 -->
</typeAliases>
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
<!-- 和spring整合后将取消 -->
<environments default="dev_mysql">
<environment id="dev_mysql">
<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>
<environment id="dev_oracle">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${orcl.driver}"/>
<property name="url" value="${orcl.url}"/>
<property name="username" value="${orcl.username}"/>
<property name="password" value="${orcl.password}"/>
</dataSource>
</environment>
</environments>
environment(环境变量)
transactionManager(事务管理器)
dataSource(数据源)
databaseIdProvider(数据库厂商标识)
<!-- 5、databaseIdProvider:支持多数据库厂商的;
type="DB_VENDOR":VendorDatabaseIdProvider
作用就是得到数据库厂商的标识(驱动getDatabaseProductName()),mybatis就能根据数据库厂商标识来执行不同的sql;
MySQL,Oracle,SQL Server,xxxx
-->
<databaseIdProvider type="DB_VENDOR">
<!-- 为不同的数据库厂商起别名 -->
<property name="MySQL" value="mysql"/>
<property name="Oracle" value="oracle"/>
<property name="SQL Server" value="sqlserver"/>
</databaseIdProvider>
mappers(映射器)
<mappers>
<!-- 注册配置文件方式 -->
<mapper resource="com/kw/mapper/EmployeeMapper.xml"/>
<!--注册接口方式:
此方法需要接口和xml配置文件进行绑定,并且映射文件名必须和接口同名,并且放在与接口同一目录下。-->
<mapper class="com.kw.mapper.EmployeeMapper"/>
<!--批量注册接口方式(常用)-->
<package name="com.kw.mapper"/>
</mappers>