核心配置文件
配置文件
<?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>
主要配置有
properties 加载外部properties文件
settings 设置
typeAliases 类型别名:权限定类名-别名
typeHandlers 类型处理器:java和数据库之间类型转换
plugins 插件:集成第三方插件
environments 环境:配置数据源环境
environment 环境变量
transactionManager 事务处理器
dataSource 数据源
mappers 映射器:加载映射文件
environments
<environments default="developement"> <!--指定默认环境-->
<environment id="developement"> <!--环境id-->
<transactionManager type="JDBC"/> <!--事务管理器类型是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>
transcationManager事务管理器类型有两种
- JDBC:直接使用JDBC的提交和回滚设置
- MANAGED:从来不提交和回滚事务,所以一般不用。
dataSource数据源类型
- UNPOOLED:不适用连接池,每次请求都打开和关闭连接
- POOLED:使用连接池
- JNDI:为了能在EJB或者应用服务器这类容器中使用(先不讲)
mappers
mappers映射器,加载映射文件
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
其中加载映射文件方式如下:
- 映射文件的相对资源路径:
<mapper resource="xx/xx/UserMapper.xml"/>
- 还有其它加载方式,先不讲
properties
一般习惯将数据源的配置信息单独抽取成一个properties文件,该标签可以加载properties配置文件
<properties resource="jdbc.properties"/>
<environments default="developement"> <!--指定默认环境-->
<environment id="developement"> <!--环境id-->
<transactionManager type="JDBC"/> <!--事务管理器类型是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>
typeAliases
类型别名:将Java全限定类名用一个短的名字代替。如果用一个别名代替,那么在映射文件中可以使用别名。如将java.lang.Integer
命名为int
:
<delete id="delete" parameterType="int">
delete from user where id=#{id}
</delete>
在Mybatis中,已经有许多设置好的别名,如:
string->String类型
long->Long类型
int->Integer类型
在核心配置文件中自定义别名:(一般放在核心配置文件前面,避免别的配置提前调用)
<typeAliases>
<typeAlias type="com.baidu.domain.User" alias="user"/>
</typeAliases>