这篇文章将为大家详细讲解有关mybatis配置文件有哪些需要注意的事项,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
配置
mybatis-config。xml文件的头部格式我们就不说了,直接从属性开始介绍,配置为最顶层节点,其余所有的属性都必须嵌套在配置内,MyBatis配置文件的顶层节点如下:
& lt; properties> & lt;/properties> & lt; !——属性——比; & lt; settings> & lt;/settings>& lt; !——设置——比; & lt; typeAliases> & lt;/typeAliases> & lt; !——配置别名——比; & lt; typeHandlers> & lt;/typeHandlers> & lt; !——类型处理器——比; & lt; objectFactory> & lt;/objectFactory> & lt; !——对象工厂——比; & lt; plugins> & lt;/plugins> & lt; !——插件——比; & lt;环境默认=啊白4? lt; !——环境配置——比; & lt;环境id=啊白4? lt; !——环境变量——比; & lt; transactionManager> & lt;/transactionManager> & lt; !——事务管理器——比; & lt; dataSource> & lt;/dataSource> & lt; !——数据源——比; & lt;/environment> & lt;/environments> & lt; databaseIdProvider> & lt;/databaseIdProvider> & lt; !——数据库厂商标识——比; & lt; mappers> & lt;/mappers> & lt; !——映射器——在
可以看到配置内的全部顶层节点只有9个,下面我们就一个个来分析一下
属性下面是一个相对完整的属性配置
& lt; !——配置资源——比; & lt;属性资源=皒xx/xxx.properties"祝辞& lt; !——属性——比; & lt;属性名=癹dbc.driver"值=https://www.yisu.com/zixun/" db.properties "/> >属性 <属性url=" http://xxxx "> <属性名=" jdbc。司机“价值=" db.properties "/> 属性>
上面我特意分开写,就是怕引起大家的误解,因为资源和url只允许存在一个,不能同时配置两个属性,可以看到源码中的解析过程:
同时配置了资源和url会抛出异常。
配置了属性属性之后,在xml其他配置文件中可以直接通过$ {xxx}来读取。
属性配置有三种方式,资源或者url指定,直接配置在子节点属性中,另一种就是上一篇提到的,直接代码中去其他地方读取属性文件,然后传入建造方法。
那么这三种方式既然都能配置,假如属性配置重复了,优先级是怎么样的呢?
<强>属性优先级强>
属性配置的属性如果重复,优先级如下:
1,第一优先:在代码中直接通过属性传入建造方法。
2,第二优先:通过资源或者url读取到的属性文件中属性。
3,第三优先:直接在物业内的子标签财产内定义的属性。
在实际开发中,建议是只使用一种,使用多种方式混合的话会给后期维护造成困难,而且不同类型的配置属性混合时可读性也不好。
设置
设置是mybatis中最复杂,也是最重要的内容之一。当然这里说的复杂并不是说配置方式复杂,而是设置能配置的东西非常多,一些很核心的功能都是通过设置标签配置的。
下面是一个完整的属性配置示例:
& lt; settings> & lt; !——设置——比; & lt;设置名称=癱acheEnabled"值=https://www.yisu.com/zixun/"假"/> <设置name=" lazyLoadingEnabled " value=" false "/> <设置name=" aggressiveLazyLoading " value=" false "/> <设置name=" multipleResultSetsEnabled " value=" false "/> <设置name=" useColumnLabel " value=" false "/> <设置name=" useGeneratedKeys " value=" false "/> <设置name=" autoMappingBehavior " value="没有"/> <设置name=" defaultExecutorType " value="简单"/> <设置name=" defaultStatementTimeout " value=" 100 "/> <设置name=" safeRowBoundsEnabled " value=" false "/> <设置name=" mapUnderscoreToCamelCase " value=" false "/> <设置name=" localCacheScope " value="会议"/> <设置name=" jdbcTypeForNull " value=" VARCHAR "/> <设置name=" lazyLoadTriggerMethods " value="="/> <设置name=" defaultScriptingLanguage " value=" org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver "/> <设置name=" callSettersOnNulls " value=" false "/> <设置name=" logPrefix " value=" LONELY_WOLF_ "/> <设置name=" logImpl " value=" SLF4J "/>mybatis配置文件有哪些需要注意的事项