深入MyBatis配置:settings设置

这是MyBatis中极为重要的调整设置,他们会改变MyBatis的运行时行为:
参数
描述
有效值
默认值
cacheEnabled
该配置影响所有映射器中配置的缓存的全局开关
ture|false
true
lazyLoadingEnabled
延迟加载的全局开关,当开启时,所有关联对象都会延迟加载,特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态
true|false
false
aggressiveLazyLoading
当启用时,对任意延迟属性的调用会使带有延迟加载属性的对象完整加载;反之,每种属性将会按需加载
true|false
true
multipleResultSetsEnabled
是否允许单一语句返回多结果集(需要兼容驱动)
true|false
true
useGenneratedKeys
允许JDBC支持自动生成主键,需要驱动兼容.如果设置为true这这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍正常工作
true|false
false
autoMappingBehavior
指定MyBatis应如何自动映射列到字段或属性,NONE表示取消自动映射;PARTIAL只会自动映射没有定义嵌套结果集映射的结果集.FULL会自动映射任意复杂结果集(无论是否嵌套)
NONE|PARTIAL|FULL
PARTIAL
autoMappingUnknownColumnBehavior
是否自动映射未知的字段或属性
NONE:什么都不做
WARNING:警告
FAILING:抛出异常
NONE|WARNING|FAILING
NONE
defaultExceptionType
配置默认的执行器.SIMPLE就是普通执行器;REUSE执行器会重用预处理语句(prepared statements);BATCH执行器将重用语句并执行批量更新
SIMPLE|REUSE|CATCH
SIMPLE
defaultStatementTimeout
设置超时时间,他决定驱动等待数据库响应的秒数
integer
null
defaultFetchSize
默认返回的结果集大小
integer
null
safeRowBoundsEnabled
允许在嵌套语句中使用分页(RowBounds)
true|false
false
mapUnderscoreToCame
是否开启自动驼峰命名规则(camelcase)映射
true|false
false
localCacheScope
MyBatis利用本地缓存机制(LocalCache)防止循环引用(circular references)和加速重复嵌套查询.默认值为SESSION,这种情况下会缓存一个会话中执行的所有查询.若设置值为STATEMENT,则本地 会话仅用在语句执行上,对相同SqlSession的不同调用将不会共享数据
SESSION|STATEMENT
SESSION
jdbcTypeForNull
当没有为参数提供特定的JDBC类型时,为空值指定JDBC类型.某些驱动需要指定列的JDBC类型,多数情况直接用一般类型即可,比如NULL,VARCHAR或OTHER
NULL|VARCHAR|OTHER
OTHER
lazyLoadTriggerMethods
指定哪个对象的方法触发一次延迟加载
方法名的list集合
equals.clone.hachCode,toString
defaultScriptingLanguage
指定动态SQL生成的默认语言
一个类型别名或完全限定类名
org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver
callSettersOnNulls
指定当结果集中值为null时是否调用映射对象的setter(map对象为put)方法,这对于有Map.keySet()依赖或null值初始化时是有用的,注意基本类型(int,boolean等)是不能设置成null的
true|false
false
logPrefix
指定MyBatis增加到日志名称的前缀
String
null
logImpl
指定MyBatis所用日志的具体实现,未指定时将自动查找
SLF4J|LOG4J|LOG4J2|K_LOGGING|COMMON_LOGGING|STDOUT_LOGGING|NO_LOGGING
null
proxyFactory
指定MyBatis创建具有延迟加载能力的对象所用到的代理工具
CGLIB|JAVASSIST
JAVASSIST