本文正在参加「金石计划 . 瓜分6万现金大奖」
四.核心配置文件
1.文件结构
-
核心配置文件命名建议是mybatis-config.xml,无强制要求
-
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息
-
核心配置文件存放的位置是maven工程下的src/main/resources目录下
-
简易结构如下,核心配置文件的标签不止这几个
<?xml version="1.0" encoding="UTF-8" ?> <!--DTD约束--> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 1.environments配置数据库的环境,环境可以有多个 2.default属性指定使用的环境 --> <environments default="development"> <!-- 1.environment配置具体某个数据库的环境 2.id属性唯一标识这个环境 --> <environment id="development"> <!-- 1.transactionManager设置事务管理方式 2.type属性取值有“JDBC|MANAGED” 3.JDBC指当前环境中使用的是JDBC中原生的事务管理方式,事务的提交或回滚需要手动处理 4.MANAGED指被管理,例如Spring中 --> <transactionManager type="JDBC"/> <!-- 1.dataSource配置数据源 2.取值有"POOLED|UNPOOLED|JNDI" 3.POOLED表示使用数据库连接池缓存数据库连接 4.UNPOOLED:表示不使用数据库连接池 5.JNDI表示使用上下文中的数据源 --> <dataSource type="POOLED"> <!--设置链接数据库的驱动--> <property name="driver" value="com.mysql.jdbc.Driver"/> <!--设置连接数据库的地址--> <property name="url" value="jdbc:mysql://localhost:3306/ssm"/> <!--设置连接数据库的用户名--> <property name="username" value="root"/> <!--设置连接数据库的密码--> <property name="password" value="lxq"/> </dataSource> </environment> </environments> <!--mappers用于引入映射的配置文件--> <mappers> <!--mapper用于指定某个映射文件,resource属性指定文件路径--> <mapper resource="mappers/UserMapper.xml"/> </mappers> </configuration>
2.核心配置文件详解
(1)标签顺序
- 核心配置文件中configuration标签下的子标签要按照一定的顺序书写
- properties => settings => typeAliases => typeHandlers => objectFactory => objectWrapperFactory => reflectorFactory => plugins => environments => databaseIdProvider => mappers
(2)标签详解
-
标签
-
用于引入某个properties配置文件,是一个单标签
-
resource属性指定配置文件
-
范例
<properties resource="jdbc.properties" />
-
-
标签
-
用于为某个类的全类名设置别名,子标签是
-
一个子标签对应设置一个类的别名
-
子标签下有type和alias两个属性,type指定需要设置别名的类的全类名,alias指定别名
-
如果只设置了type属性,那么默认的别名就是它的类名(不是全类名)而且不区分大小写
-
如果想要设置某个包下所有类的别名,可以使用标签,用name属性指定包名
-
范例
<typeAliases> <typeAlias type="com.lxq.pojo.User" alias="User"></typeAlias> <package name="com.lxq.pojo"></package> </typeAliases> -
MyBatis中内建了一些类型的别名,常见的有
Java类型 别名 int _int或_integer Integer int或integer String string List list Map map
-
-
标签
-
用于配置连接数据库时用到的各种属性,是一个单标签
-
该标签有两个属性,一个是name指定属性名,另一个是value指定属性值
-
如果不使用标签引入相关配置文件时,使用方式如下
<property name="driver" value="com.mysql.jdbc.Driver" /> -
如果使用标签引入相关的配置文件时,value属性可以写成如下形式
<property name="driver" value="${jdbc.driver}" />其中配置文件的内容是
jdbc.driver=com.mysql.jdbc.Driver注意:这里使用jdbc.driver来给键命名是因为核心配置文件中可能会引入其他的配置文件,如果使用driver来命名键的话有可能会跟其他配置文件中的键同名而产生冲突
-
-
标签
-
该标签用于引入映射文件
-
每个映射文件使用子标签来表示,该子标签是一个单标签
-
子标签使用属性resource来指定需要引入的映射文件
-
如果想要将某个包下所有的映射文件都引入,可以使用标签,使用name属性来指定需要引入的包
-
范例
<mappers> <mapper resource="mappers/UserMapper.xml" /> <package name="com.lxq.mapper" /> </mappers>注意:使用包的形式引入映射文件需要满足两个条件,1.mapper接口所在的包和映射文件所在的包要一致;2.mapper接口名和映射文件名要相同
-