mybatis配置文件说明(configuration)
1. xml结构(可查看mybatis-3-config.dtd)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers?)> <!ELEMENT databaseIdProvider (property*)> <!ATTLIST databaseIdProvider type CDATA #REQUIRED > <!ELEMENT properties (property*)> <!ATTLIST properties resource CDATA #IMPLIED url CDATA #IMPLIED > <!ELEMENT property EMPTY> <!ATTLIST property name CDATA #REQUIRED value CDATA #REQUIRED > <!ELEMENT settings (setting+)> <!ELEMENT setting EMPTY> <!ATTLIST setting name CDATA #REQUIRED value CDATA #REQUIRED > <!ELEMENT typeAliases (typeAlias*,package*)> <!ELEMENT typeAlias EMPTY> <!ATTLIST typeAlias type CDATA #REQUIRED alias CDATA #IMPLIED > <!ELEMENT typeHandlers (typeHandler*,package*)> <!ELEMENT typeHandler EMPTY> <!ATTLIST typeHandler javaType CDATA #IMPLIED jdbcType CDATA #IMPLIED handler CDATA #REQUIRED > <!ELEMENT objectFactory (property*)> <!ATTLIST objectFactory type CDATA #REQUIRED > <!ELEMENT objectWrapperFactory (property*)> <!ATTLIST objectWrapperFactory type CDATA #REQUIRED > <!ELEMENT plugins (plugin+)> <!ELEMENT plugin (property*)> <!ATTLIST plugin interceptor CDATA #REQUIRED > <!ELEMENT environments (environment+)> <!ATTLIST environments default CDATA #REQUIRED > <!ELEMENT environment (transactionManager,dataSource)> <!ATTLIST environment id CDATA #REQUIRED > <!ELEMENT transactionManager (property*)> <!ATTLIST transactionManager type CDATA #REQUIRED > <!ELEMENT dataSource (property*)> <!ATTLIST dataSource type CDATA #REQUIRED > <!ELEMENT mappers (mapper*,package*)> <!ELEMENT mapper EMPTY> <!ATTLIST mapper resource CDATA #IMPLIED url CDATA #IMPLIED class CDATA #IMPLIED > <!ELEMENT package EMPTY> <!ATTLIST package name CDATA #REQUIRED >
2. setting标签参数说明
参数 | 描述 | 值 | 默认值 |
cacheEnabled | 配置全局的启用或禁用缓存策略。 | true|false | true |
lazyLoadingEnabled | 全局启用或禁用延迟加载。当禁用时, 所有关联都会马上被加载。 | true|false | false |
aggressiveLazyLoading |
当启用时, 有延迟加载属性的对象在被调用时将所有属性都进行加载。否则, 该对象的每个属性将会按需加载。 |
true|false | true |
useColumnLabel |
使用列标签代替列名。不同的驱动在这 方便方式不同。参考驱动文档或充分测 试来判断所使用的驱动方式。 |
true|false | true |
useGeneratedKeys |
JDBC支持主键生成策略,需要驱动兼容,当值设定为true时会强制使用主键生成, 即使在某些驱动中不能兼容但依然有效。 |
true|false | true |
defaultStatementTimeout | 设置数据库的超时响应时间 |
Any positive integer (任意数值) |
not set |
localCacheScope |
定义本地缓存范围来预防循环引用及重复嵌套的查询,如果值为session,所有的 查询结果在session平级的范围中被缓存,如果值为statement,那么缓存将不能 在两个不同的SqlSession中被共享 |
session|statement | session |
defaultExecutorType |
配置默认的执行器,simple无特殊处理、reuse能重利用预编译的Statement。 batch能重利用预编译的Statement并支持批量更新 |
simple|reuse|batch | simple |
autoMappingBehavior |
指定 MyBatis 如何自动映射列到字段/ 属性。none不使用自动映射,partial只 会自动映射简单, 没有嵌套的结果。full会自动映射任意复杂的结果(嵌套的或 其他情况) |
none|partial|full | partial |
jdbcTypeForNull |
当没有特别的JDBC类型参数被提供,指定JDBC空值类型为定义值,一些驱动需要指 定jdbctype,而其他的通常做法是使用NULL,VARCHAR或者OTHER |
other | |
logImpl | 指定MyBatis中使用何种的日志处理程序 |
SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING |
not set |
logPrefix | 指定MyBatis中的日志文件名称的前缀 | Any String | not set |
multipleResultSetsEnabled | 允许或不允许一个Statement返回多个ResultSet(需要适合的驱动) | true|false | true |
safeRowBoundsEnabled | 允许在嵌套的statement中使用RowBounds(Mybatis中的分页处理) | true|false | false |
mapUnderscoreToCamelCase | 允许自动映射数据库列名称为复合词,例如:x_xx自动映射为xXxx,驼峰命名 | true|false | false |
callSettersOnNulls |
当结果集中含有Null值时是否执行映射对象的setter或者Map对象的put方法。此 设置对于原始类型(基本类型)如int,boolean等无效 |
true | false | false |
lazyLoadTriggerMethods | 指定对象的哪些方法会被延迟加载 |
A method name list separated by commas (用逗号分隔的方法名列表) |
{ "equals", "clone", "hashCode", "toString" } |
proxyFactory | 指定MyBatis用于延迟加载对象的动态代理工具 | cglib| JAVASSIST(jdk) | CGLIB |
(1)logPrefix源码使用位置org.apache.ibatis.builder.MappedStatement.builder
把配置logPrefix+语句id拼接起来,打印执行语句的时候可以看到