前言
本章讲解全局配置文件(mybatis-config.xml)配置
方法
1.概念
MyBatis的全局配置文件,即之前配置的mybatis-config.xml。这个文件的命名没有固定的说法,按照官方给出的理解,应该要如此命名。
2.配置详解
下面只是说明一下重点的标签解释,一些容易理解的请阅读文档自行理解即可。
1)transactionManager
该标签位于environment标签下,type属性声明使用的事务管理方式。
在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”)
- JDBC:使用原生JDBC事务管理方式
- MANAGED:将事务管理转交给其他容器(如Spring)
2)dataSource
该标签位于environment标签下,type属性声明使用的数据源类型。
有三种内建的数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]”)
- UNPOOLED:不使用数据库连接池,类似于我们之前使用的原生JDBC
- POOLED:使用数据库连接池
- JNDI:Java命名目录接口技术
3)properties
该标签位于configuration标签下,用于声明数据源使用的参数信息。
这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递
<properties resource="db.properties"/>
或:
<properties>
<property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</properties>
若如此做,则dataSource标签的子标签可以写成:
<dataSource type="POOLED">
<!-- 定义数据库连接必备的属性 -->
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
4)settings
该标签位于configuration标签下,用于声明Mybatis使用的配置信息。
这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为!
一个完整的示例如下,具体的配置详情请参阅帮助文档:
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="autoMappingUnknownColumnBehavior" value="WARNING"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="defaultFetchSize" value="100"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
5)typeAliases
该标签位于configuration标签下,用于为完整的类名做别名操作。
类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
具体的例子:
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
<typeAlias alias="Comment" type="domain.blog.Comment"/>
<typeAlias alias="Post" type="domain.blog.Post"/>
<typeAlias alias="Section" type="domain.blog.Section"/>
<typeAlias alias="Tag" type="domain.blog.Tag"/>
</typeAliases>