Settings是MyBatis中最复杂的配置,它们会修改MyBatis运行时的行为方式,大多数采用默认值即可,一般会修改的有:自动映射、驼峰命名映射、是否启动缓存等。
下表的设置信息来自于mybatis 官方文档:
设置参数 | 描述 | 有效值 | 默认值 |
---|---|---|---|
cacheEnabled | 这个配置使全局的映射器启用或禁用缓存。 | true | false | true |
lazyLoadingEnabled | 全局启用或禁用延迟加载。 当禁用时,所有关联对象都会即时加载。 | true | false | true |
aggressiveLazyLoading | 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。 | true | false | true |
multipleResultSetsEnabled | 允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)。 | true | false | true |
useColumnLabel | 使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动。 | true | false | true |
useGeneratedKeys | 允许 JDBC 支持生成的键。需要适合的驱动。如果设置为 true 则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如 Derby)。 | true | false | false |
autoMappingBehavior | 指定 MyBatis 如何自动映射列到字段/属性。 PARTIAL 只会自动映射简单,没有嵌套的结果。 FULL 会自动映射任意复杂的结果(嵌套的或其他情况)。 | NONE,PARTIAL,FULL | PARTIAL |
defaultExecutorType | 配置默认的执行器。 SIMPLE 执行器没有什么特别之处。 REUSE 执行器重用预处理语句。 BATCH 执行器重用语句和批量更新 | SIMPLE,REUSE,BATCH | SIMPLE |
defaultStatementTimeout | 设置超时时间,它决定驱动等待一个数据库响应的时间。 | 任何正整数 | Not Set(null) |
一个设置信息元素的示例,完全的配置如下:
<settings>
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
<setting name="useColumnLabel" value="true"/>
<setting name="useGeneratedKeys" value="false"/>
<setting name="enhancementEnabled" value="false"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25000"/>
</settings>