MyBatis 配置文件标签
MyBatis 的全局配置文件习惯上命名为:mybatis-config.xml ,此文件名仅仅是建议,并非是强制要求。配置文件存放的位置是 src/main/resources 目录下。下面将介绍配置文件中常用的标签:
1. properties
属性值定义,<properties>
可以自定义属性值,也可以引入外部配置文件。可以使用 ${name} 获取对应的值。该标签通常用来将内部的配置外在化,即通过外部的配置文件来动态替换内部定义的属性。最常见的例子即为数据库的连接信息,即我们可以将数据源配置写到外部文件中,再使用此标签引入外部配置文件,这样就可以做到动态配置数据源。
db.properties 文件如下(此配置MySQL版本为8.0):
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/exercise?serverTimezone=GMT%2b8&useSSL=false&useUnicode=true&characterEncoding=UTF-8
jdbc.username: root
jdbc.password: 123456
mybatis-config.xml 配置文件如下:
<properties resource="db.properties"></properties>
<environments default="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<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>
2. settings
<settings>
是配置 MyBatis 运行时的一些行为的,例如缓存、延迟加载、命名规则等一系列控制性参数。举例如下:
<settings>
<!-- 开启二级缓存功能 -->
<setting name="cacheEnabled" value="true"/>
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
</settings>
3. plugins
<plugins>
是配置 MyBatis 插件的。插件可以增强 MyBatis 功能,比如进行sql增强,打印日志,异常处理以及分页插件等。配置分页插件如下:
<plugins>
<!-- 配置PageHelper插件 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<!-- 设置数据库类型-->
<property name="helperDialect" value="mysql"/>
</plugin>
</plugins>
4. typeAliases
<typeAliases>
可以为配置文件中的 Java 类设置别名,MyBatis 对常用类有默认别名支持,别名可以减少全限定类名的冗余。举例如下:
<!-- 为一个类起别名,type为全类名,alias为别名 -->
<typeAliases>
<typeAlias type="com.it.entity.Student" alias="Student"></typeAlias>
</typeAliases>
<!-- 为一个包下的所有类起别名,name为包名。别名和类名相同,省略包名 -->
<typeAliases>
<package name="com.it.entity"></package>
</typeAliases>
5. environments
<environments>
可以为 MyBatis 配置数据环境,可以配置多种数据源,具体如下:
事务管理
<environments default="mysql">
<environment id="mysql">
<!-- JDBC:使用JDBC的提交和回滚 MANAGED:不做事务处理-->
<transactionManager type="JDBC"></transactionManager>
</environment>
</environments>
连接池:参考第一个标签的举例
注意:dataSource 的 type 属性:
- POOLED:使用连接池管理连接,使用 MyBatis 自带的连接池。
- UNPOOLED:不使用连接池,直接由 JDBC 连接。
- JNDI:由 JAVAEE 服务器管理连接,如果使用 Tomcat 作为服务器则使用 Tomcat 自带的连接池管理。
6. mappers
<mappers>
用于注册映射文件或持久层接口,只有注册的映射文件才能使用,一般有以下四种方式可以完成注册:
(1)使用相对路径注册映射文件
<mappers>
<mapper resource="com/it/mapper/StudentMapper.xml"/>
</mappers>
(2)使用绝对路径注册映射文件
<mappers>
<mapper url="file:///D:idea_workspace/exercise/com/it/mapper/StudentMapper.xml"/>
</mappers>
(3)注册持久层接口(较常用)
<mappers>
<mapper class="com.it.mapper.StudentMapper"/>
</mappers>
(4)注册一个包下的所有持久层接口
<mappers>
<package name="com.it.mapper"/>
</mappers>