一、xml节点结构
configuration为根节点
properties 可以配置在Java 属性配置文件中
settings 修改 MyBatis 在运行时的行为方式
typeAliases 为 Java 类型命名一个别名(简称)
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境
environment 环境变量
transactionManager 事务管理器
dataSource 数据源
mappers 映射器
二、各节点作用
2.1 properties节点
配置properties元素有两种方式
通过外部指定的方式(database.properties),实现动态配置
直接通过其子节点property配置,实现动态配置
1、通过外部指定的方式(database.properties),实现动态配置
配置properties的resource属性
<properties resource="database.properties"/> ...... <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>
2、直接通过其子节点property配置,实现动态配置
<properties> <property name="driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> <property name="url" value="jdbc:sqlserver:///house"/> <property name="user" value="sa"/> <property name="password" value=“123"/> </properties> ...... <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${user}"/> <property name="password" value="${password}"/> </dataSource>
3、若两种方式同时都用了,resource属性值的优先级高于property子节点配置的值
2.2 settings节点
由多个setting节点组成,用来修改MyBatis运行时的行为方式,主要是MyBatis的一些全局配置属性的设置,具体如下:
设置项 | 描述 | 允许值 | 默认值 |
cacheEnabled | 对在此配置文件下的所有cache 进行全局性开/关设置 | true | false | true |
lazyLoadingEnabled | 全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载 | true | false | true |
autoMappingBehavior | MyBatis对于resultMap自动映射匹配级别 | NONE | PARTIAL | FULL | PARTIAL |
……(9个) | …… | …… | …… |
2.3 typeAliases节点
类型别名。仅仅只关联XML配置,简写冗长的Java类名
有2种配置方式:
<typeAliases> <typeAlias alias="Users" type="com.pojo.Users"/> </typeAliases>
<typeAliases> <package name ="com.pojo" /> </typeAliases>
2.4 environments节点
表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上
子节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)
虽然可以配置多个运行环境,但是每个SqlSessionFactory 实例只能选择一个运行环境。即:每个数据库对应一个SqlSessionFactory实例
<environments default="development"><!-- 默认的运行环境 ID --> <environment id="development"><!-- 运行环境 ID --> <transactionManager type="JDBC"/><!-- 事务管理器配置 --> <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> <environment id="test"> …… </environment> </environments>
其中,transactionManager的可填值为JDBC或者MANAGED(托管),通常使用JDBC
dataSource有三种内建的数据源类型,分别是UNPOOLED | POOLED | JNDI,通常使用POOLED
2.5 mappers节点
用来定义SQL映射语句,须在配置中引用mapper映射文件,配置方式有2种:
方式一:使用类资源路径获取资源
<!-- 将mapper映射文件加入到系统核心配置文件中 --> <mappers> <mapper resource="com/mapper/UsersMapper.xml"/> </mappers>
方式二:使用包名自动获取资源
<mappers> <package name="com.mapper"/> </mappers>