最全面 MyBatis 框架核心配置文件使用总结,值得收藏!

前言
今天本篇主要介绍一下MyBatis的全局配置文件的使用 。
configuration
mybatis-config.xml文件的头部格式我们就不说了,直接从属性开始介绍,configuration为最顶层节点,其余所有的属性都必须嵌套在configuration内,MyBatis配置文件的顶层节点如下:
 
"">
"">

可以看到configuration内的全部顶层节点只有9个,下面我们就一个个来分析一下 。面试宝典:https://www.yoodb.com
properties
下面是一个相对完整的属性配置
"xxx/xxx.properties">
"jdbc.driver" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"db.properties"/>

 
"http://xxxx">
"jdbc.driver" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"db.properties"/>

上面我特意分开写,就是怕引起大家的误解,因为resource和url只允许存在一个,不能同时配置两个属性,可以看到源码中的解析过程:

最全面 MyBatis 框架核心配置文件使用总结,值得收藏!

文章插图
同时配置了resource和url会抛出异常 。
配置了properties属性之后,在xml其他配置文件中可以直接通过${xxx}来读取 。
properties配置有三种方式,resource或者url指定,直接配置在子节点properties中,另一种就是上一篇提到的,直接代码中去其他地方读取properties文件,然后传入build方法 。
那么这三种方式既然都能配置,假如属性配置重复了,优先级是怎么样的呢?
properties优先级
properties配置的属性如果重复,优先级如下:
 
  • 1、第一优先:在代码中直接通过properties传入build方法 。
  • 2、第二优先:通过resource或者url读取到的properties文件中属性 。
  • 3、第三优先:直接在properties内的子标签property内定义的属性 。
 
在实际开发中,建议是只使用一种,使用多种方式混合的话会给后期维护造成困难,而且不同类型的配置属性混合时可读性也不好 。
settings
settings是MyBatis中最复杂,也是最重要的内容之一 。当然这里说的复杂并不是说配置方式复杂,而是settings能配置的东西非常多,一些很核心的功能都是通过settings标签配置的 。下面是一个完整的属性配置示例:
"cacheEnabled" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"lazyLoadingEnabled" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"aggressiveLazyLoading" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"multipleResultSetsEnabled" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"useColumnLabel" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"useGeneratedKeys" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"autoMAppingBehavior" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"NONE"/>
"defaultExecutorType" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"SIMPLE"/>
"defaultStatementTimeout" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"100"/>
"safeRowBoundsEnabled" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"mapUnderscoreToCamelCase" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"localCacheScope" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"SESSION"/>
"jdbcTypeForNull" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"VARCHAR"/>
"lazyLoadTriggerMethods" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"equals"/>
"defaultScriptingLanguage" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"org.Apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver"/>
"callSettersOnNulls" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"false"/>
"logPrefix" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"LONELY_WOLF_"/>
"logImpl" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"SLF4J"/>
"proxyFactory" value=https://www.isolves.com/it/cxkf/kj/2022-11-24/"JAVASSIST"/>

 
所有的可设置值列举如下(这些属性有个映像就可以了,不需要去记,常用的多用几次自然就记住了,不常用的需要的时候再查一下资料就可以了,所以建议大家可以收藏之后方便查询):
最全面 MyBatis 框架核心配置文件使用总结,值得收藏!

文章插图

最全面 MyBatis 框架核心配置文件使用总结,值得收藏!

文章插图


推荐阅读