mybatis配置文件说明(configuration)

时间:2021-12-21 07:55:48

1. xml结构(可查看mybatis-3-config.dtd)

<!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