MyBatis核心配置文件详解

本文最后更新于:1 年前

mybatis-config.xml 是 MyBatis 框架的主配置文件,主要用于配置MyBatis数据源及属性信息。

核心配置文件层级关系

注意:以上标签必须按顺序从上往下书写。

常用配置解析

Properties标签

实际开发中,习惯将数据源的配置信息单独抽取成一个 properties 文件,该标签可以加载额外配置的 properties 文件:

  1. 将数据源的配置信息单独抽取到 jdbc.properties 文件中:

    jdbc.properties
  2. 在 mybatis-config.xml 中通过 properties 标签引用入jdbc.properties文件后,在配置 environment 时可以直接使用 jdbc.properties 中的 key 获取对应的 value,作为数据源的连接信息:

    mybatis-config.xml

settings标签

settings标签用于设置 mybatis 的属性。

1
2
3
4
5
6
<settings>
<!-- 启动二级缓存-->
<setting name="cacheEnabled" value="true"/>
<!-- 启动延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
</settings>

typeAliases标签

typeAliases标签用于给实体类取别名,在映射文件中可以直接使用别名来替代实体类的全限定名。

原实体类的类型名称配置

  1. 在 sqlMapConfig.xml 中配置 typeAliases,为cc.gaojie.domain.User定义别名为user:

  2. 在 userMapper.xml 中使用上面自定义的类型别名替换全限定名:


上面我们是自定义的别名,mybatis 框架已经为我们设置好的一些常用的类型的别名:

使用mybatis框架提供的类型别名替换全限定名:

plugins标签

plugins标签,用于配置 MyBatis 插件,如分页插件。

1
2
3
<plugins>
<plugin interceptor=""></plugin>
</plugins>

environments标签

environments标签用于配置数据库连接信息,支持多环境配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!-- 在environments配置数据库连接信息 -->
<!-- 在environments标签中可以定义多个environment标签,每个environment标签可以定义一套连接配置 -->
<!-- default属性,用来指定使用哪个environment标签 -->
<environments default="mysql">

<!-- environment 标签用于配置数据库连接信息 -->
<environment id="mysql">

<!--transactionManager标签用于配置数据库管理方式
type="JDBC" 可以进行事务的提交和回滚操作
type="MANAGED" 依赖容器完成事务管理,本身不进行事务的提交和回滚操作 -->
<transactionManager type="JDBC"></transactionManager>

<!--dataSource标签就是用来配置数据库连接信息 POOLED|UNPOOLED -->
<dataSource type="POOLED">
<property name="driver" value="${mysql_driver}"/>
<property name="url" value="${mysql_url}"/>
<property name="username" value="${mysql_username}"/>
<property name="password" value="${mysql_password}"/>
</dataSource>
</environment>

</environments>

transactionManager

事务管理器(transactionManager)类型有两种:

  • JDBC

    这个配置就是直接使用了JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。

  • MANAGED

    这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如JEE应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置为 false 来阻止它默认的关闭行为。

dataSource

数据源(dataSource)类型有三种:

  • UNPOOLED:这个数据源的实现只是每次被请求时打开和关闭连接。

  • POOLED:这种数据源的实现利用 “池” 的概念将 JDBC 连接对象组织起来。

  • JNDI:这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。

mapper标签

mapper标签用于加载映射配置(映射文件、DAO注解)。

该标签用于加载映射文件时,加载方式有如下几种:

  • 使用相对于类路径的资源引用(相对路径),例如:<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  • 使用完全限定资源定位符(URL),例如:<mapper url="file:///var/mappers/AuthorMapper.xml"/>
  • 使用映射器接口实现类的完全限定类名,例如:<mapper class="org.mybatis.builder.AuthorMapper"/>
  • 将包内的映射器接口实现全部注册为映射器,例如:<package name="org.mybatis.builder"/>

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!