MyBatis 配置文件的 configuration 标签主要包括:
- configuration 配置
- properties 属性
- settings 设置
- typeAliases 类型命名
- typeHandlers 类型处理器
- objectFactory 对象工厂
- plugins 插件
- environments 环境
- environment 环境变量
- transactionManager 事务管理器
- databaseIdProvider 数据库厂商标识
- mappers 映射器
1、properties属性
properties属性可以用来指定外部的.properties文件地址,然后可以通过${properties属性名}来获取值,比如:
- 在resource目录下创建database.properties文件:
url=jdbc:mysql://localhost:3306/employees?serverTimezone=GMT&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8
username=
password=
- 同样在resource目录下的mybatis.config.xml文件中,设置配置文件,同时也可以设置属性:
<properties resource="database.properties">
<property name="driver" value="com.mysql.jdbc.Driver"/>
</properties>
- 然后就可以使用${属性名}取值:
<!-- 数据库连接池,由 Mybatis 管理,数据库名是 mybatis,MySQL 用户名 root,密码为空 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
注意,MyBatis 加载属性的顺序如下:
- 首先读取 properties 元素体内指定的属性
- 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性
- 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性
2、settings设置
参考:http://www.mybatis.org/mybatis-3/zh/configuration.html#settings
3、typeAliases 类型命名
typeAliases用于给类型取别名,以避免重复写冗长的完全限定名。声明了Aliase以后,在映射文件中 parameterType 和 resultType 就可以直接使用别名,无需使用全路径。
- 可以单独给一个类取别名
<typeAliases>
<typeAlias type="com.test.mybatisTest.mapper.EmployeesMapper"></typeAlias>
</typeAliases>
- 可以给一个包设置别名,这样这个包下的所有类都不需要写完整限定名
<typeAliases>
<package name="com.test.mybatisTest.model"/>
</typeAliases>
注意,Mybatis中内建的别名有MyBatis中文文档——typeAliases::
| 别名 | 映射的类型 |
|---|---|
| _byte | byte |
| _long | long |
| _short | short |
| _int | int |
| _integer | int |
| _double | double |
| _float | float |
| _boolean | boolean |
| string | String |
| byte | Byte |
| long | Long |
| short | Short |
| int | Integer |
| integer | Integer |
| double | Double |
| float | Float |
| boolean | Boolean |
| date | Date |
| decimal | BigDecimal |
| bigdecimal | BigDecimal |
| object | Object |
| map | Map |
| hashmap | HashMap |
| list | List |
| arraylist | ArrayList |
| collection | Collection |
| iterator | Iterator |
4、typeHandlers 类型处理器
typeHandlers 的作用是实现 JDBC 类型和 Java 类型的之间的转换,MyBatis 中默认的类型处理器基本能满足日常需求,自定义 typeHandlers 在这里不做介绍。
5、environments 环境
MyBatis 的环境配置实际是数据源的配置。MyBatis 可以配置多个环境,帮助你将 SQL 映射对应到多种数据库。
注:尽管可以配置多个环境,每个 SqlSessionFactory 实例只能对应一个数据库,有几个数据库就需要创建几个 SqlSessionFactory 实例。
可以使用new SqlSessionFactoryBuilder().build(InputStream reader,String environement)来指定创建的SqlSessionFactory实例对应的数据源。
6、transactionManager 事务管理器
MyBatis 中的两种事务管理器,即 type="[JDBC|MANAGED]":
- JDBC:直接使用 JDBC 的提交和回滚设置
- MANAGED:让容器来管理事务的整个生命周期
7、 dataSource 数据源
dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。MyBatis 三种內建的数据源类型,即 type="[UNPOOLED|POOLED|JNDI]",这里只详细介绍 UNPOOLED:
(1)UNPOOLED
UNPOOLED 不支持 JDBC 数据源连接池,实现的只是每次被请求时打开和关闭连接。其包含的属性:
- driver:JDBC 驱动的 Java 类的完全限定名,如 MySQL 的
com.mysql.jdbc.Driver - url:数据库的 JDBC URL 地址
- username:数据库的用户名
- password:数据库的密码
- defaultTransactionIsolationLevel:默认的连接事务隔离级别。
(2)POOLED
POOLED 支持 JDBC 数据源连接池,利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。除了有 UNPOOLED 的属性外还有包括 poolMaximumActiveConnections 、 poolMaximumIdleConnections 等属性。
(3)JNDI
不做介绍
一般来说我们使用POOLED。
8、mappers 映射器
mappers 用于引用已经定义好的映射文件,告诉 MyBatis 去哪寻找映射 SQL 的语句。常见的方法:
(1)通过 resource 加载单个映射文件
<mappers>
<mapper resource="com/test/mybatis/mapper/UserMapper.xml"/>
</mappers>
(2)通过完全限定资源定位符(绝对路径前加上"file:///")加载单个映射文件
<mappers>
<mapper url="file:///home/shiyanlou/workspace/MyBatisTest/src/com/test/mybatis/mapper/UserMapper.xml"/>
</mappers>
(3)通过 mapper 接口对象加载单个映射文件
<mappers>
<mapper class="com.test.mybatis.mapper.UserMapper"/>
</mappers>
(4)通过 mapper 接口包加载整个包的映射文件
<mappers>
<package name="com/shiyanlou/mybatis/mapper" />
</mappers>
注:(3)和(4)中需要将 mapper 接口类名和 mapper.xml 映射文件名称保持一致,且在一个目录中
9、完整的Mybatis.config.xml示例
<configuration>
<properties resource="database.properties">
<property name="driver" value="com.mysql.jdbc.Driver"/>
</properties>
<typeAliases>
<typeAlias type="com.test.mybatisTest.mapper.EmployeesMapper"></typeAlias>
</typeAliases>
<!-- 配置mybatis运行环境 -->
<environments default="development">
<environment id="development">
<!-- type="JDBC" 代表直接使用 JDBC 的提交和回滚设置 -->
<transactionManager type="JDBC" />
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- 数据库连接池,由 Mybatis 管理,数据库名是 mybatis,MySQL 用户名 root,密码为空 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="EmployeesMapper"></mapper>
</mappers>
</configuration>
本文详细介绍了MyBatis配置文件的各个组成部分,包括properties属性、settings设置、typeAliases类型命名等,并提供了完整的MyBatis配置示例。

211

被折叠的 条评论
为什么被折叠?



