1、configuration有什么作用?
configuration管理MyBatis的配置,MyBatis的所有配置信息都存放的在configuration中。
下面我们看看configuration可配置的属性有哪些:
1.1 properties属性
实例:
<properties resource="org/mybatis/example/config.properties">
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
</properties>
这些都是外部化的,可替代的属性。其中的属性就可以再整个配置文件中使用,使用可替换的属性来实现动态配置,如下:
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
如果这些地方属性多余一个,没MyBatis按照下面的顺序加载:
在properties元素体内指定的属性首先被读取。
从类路径下资源或者properties元素的eurl属性中加载的属性第二被读取,它会覆盖已经存在的完全一样的属性。
作为方法参数船传递的属性最后被读取,他会覆盖任一已存在的完全一样的属性。
1.2 setings
这些是非常重要的属性,他会修改MyBatis在运行时的行为方式。如果不熟悉配置建议使用默认配置。
实例:
<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>
参数
表格:
设置参数 |
描述 |
有效值 |
默认值 |
cacheEnabled |
这个配置使全局的映射器启用或禁用缓存。 |
true | false |
true |
lazyLoadingEnabled |
全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 |
true | false |
true |
aggressiveLazyLoading |
当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则 |