1.简要说明
The MyBatis configuration contains settings and properties that have a dramatic effect on how MyBatis behaves.
MyBatis的XML配置文件包含了影响MyBatis行为甚深的设置和属性信息。
2.properties
<properties resource="jdbc.properties"/>
3.settings全局参数定义
参照官方文档3.1.2节
<settings>
<!-- 全局映射器启用缓存 -->
<setting name="cacheEnabled" value="true" />
<!-- 查询时,关闭关联对象即时加载以提高性能 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指定),不会加载关联表的所有字段,以提高性能 -->
<setting name="aggressiveLazyLoading" value="false" />
<!-- 对于未知的SQL查询,允许返回不同的结果集以达到通用的效果 -->
<setting name="multipleResultSetsEnabled" value="true" />
<!-- 允许使用列标签代替列名 -->
<setting name="useColumnLabel" value="true" />
<!-- 允许使用自定义的主键值(比如由程序生成的UUID 32位编码作为键值),数据表的PK生成策略将被覆盖 -->
<setting name="useGeneratedKeys" value="true" />
<!-- 给予被嵌套的resultMap以字段-属性的映射支持 -->
<setting name="autoMappingBehavior" value="FULL" />
<!-- 对于批量更新操作缓存SQL以提高性能 -->
<setting name="defaultExecutorType" value="BATCH" />
<!-- 数据库超过25000秒仍未响应则超时 -->
<setting name="defaultStatementTimeout" value="25000" />
</settings>
4.typeAliases别名处理器
别名是为Java类型命名一个短的名字。它只和XML配置有关,只用来减少类名重复的部分。在mybatis-config.xml中配置后会影响XxxMapper.xml的使用。
①单个配置
<!-- 配置 -->
<typeAliases>
<!-- 单独为Customer进行别名设置 -->
<typeAlias type="com.sirius.mybatis.entity.Customer" alias="Customer"/>
</typeAliases>
<!-- 效果 -->
<insert id="saveCustomer" parameterType="Customer">
INSERT INTO tbl_cust (cust_name, cust_age) VALUES (#{custName}, #{custAge})
</insert>
②批量配置
<typeAliases>
<package name="com.sirius.mybatis.entity"/>
</typeAliases>
<!-- 效果 -->
<insert id="saveCustomer" parameterType="Customer">
INSERT INTO tbl_cust (cust_name, cust_age) VALUES (#{custName}, #{custAge})
</insert>
5.typeHandlers类型处理器
MyBatis支持基本数据类型和常用数据类型的自动识别和自动类型转换,一般也不需要自定义类型转换器。
6.mappers
<!-- 指定Mapper接口的全类名 -->
<mapper class="com.sirius.mybatis.mappers.CustomerMapperAnnotation"/>
<!-- 指定外部路径:不推荐 -->
<mapper url="file:///C:/Users/zhangyu/Desktop/MyBatis/Mybatis/log4j.xml"/>
<!-- 指定包名,自动映射这个包下的所有资源,但要求遵守MyBatis的命名规范:推荐,最方便 -->
<package name="com.sirius.mybatis.mappers"/>