mybatis.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>
<!-- 加载数据库信息资源 -->
<properties resource="jdbc.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>
<!-- 映射器(mappers)将包内的映射器接口实现全部注册为映射器 -->
<mappers>
<package name="cn.hhm.mybatisdemo.mapper" />
</mappers>
</configuration>
MyBatis的配置文件元素如下:
- properties
- settings
- typeAliases
- typeHandlers (类型处理器)
- objectFactory(对象工厂)
- plugins (插件)
- environments (环境)
- databaseIdProvider (数据库厂商标识)
- mappers (映射器)
这里只介绍几个,其它的可以查看官网 MyBatis官网
,介绍的很详细。
1.properties元素
properties是一个配置属性的元素,让我们可以在配置文件的上下文中使用它。3种方式:
- property子元素
- properties配置文件
- java代码
1.1 使用方式
property子元素:
<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>
properties配置文件:
<!-- 加载数据库信息资源 -->
<properties resource="jdbc.properties"/>
1.2 优先级(加载顺序)
property子元素 > properties > 代码
2. typeHandler类型处理器
MyBatis在预处理语句(PreparedStatement)中设置一个参数时,或者从结果集(ResultSet)中取出一个值时,都会用注册了的typeHandler进行处理。
3. objectFactory
当MyBatis在构建一个结果返回时,都会使用objectFactory去构建POJO。
4. environments配置环境
environments环境可以配置多个数据源,此部分包括 ==数据源== 和 ==数据库事务==。结构如下:
<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>
注意关键点:
- 默认的环境 ID(比如:default=”development”)。
- 每个 environment 元素定义的环境 ID(比如:id=”development”)。
- 事务管理器的配置(比如:type=”JDBC”)。
- 数据源的配置(比如:type=”POOLED”)。
默认的环境和环境 ID 是自解释的,因此一目了然。你可以对环境随意命名,但一定要保证默认的环境 ID 要匹配其中一个环境 ID。
事务管理器(transactionManager)
在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”):
- JDBC:直接使用了JDBC的提交和回滚设置。
数据源(dataSource)
MyBatis内部提供了三种数据源的实现方式。
- UNPOOLED:非连接池
- POOLED:连接池
- JNDI
5. mappers(映射器)
mappers是用来定义动态SQL语句的,比较方便灵活,支持自动绑定JavaBean。
引入方式
<!-- 使用相对于类路径的资源引用 -->
<mappers>
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<mapper resource="org/mybatis/builder/BlogMapper.xml"/>
<mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) -->
<mappers>
<mapper url="file:///var/mappers/AuthorMapper.xml"/>
<mapper url="file:///var/mappers/BlogMapper.xml"/>
<mapper url="file:///var/mappers/PostMapper.xml"/>
</mappers>
<!-- 使用映射器接口实现类的完全限定类名 -->
<mappers>
<mapper class="org.mybatis.builder.AuthorMapper"/>
<mapper class="org.mybatis.builder.BlogMapper"/>
<mapper class="org.mybatis.builder.PostMapper"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 -->
<mappers>
<package name="org.mybatis.builder"/>
</mappers>