P11:
属性:
它们是在典型的Java属性文件实例中配置的内部的、可替代属性,或在属性元素的子元素中传递,例如:
然后这些属性通过配置文件替换动态配置的值,如:
例子中的用户名和密码将会被属性元素中的值替换。driver和url属性将会被cofnig.properties文件中的值替代。它提供了很多配置选项。
属性也可以传递给SqlSessionBuilder.build()方法,如:
如果一个属性存在于多处,MyBatis会以如下顺序加载:
· 定义在属性元素体的属性会首先读取
· 之后从类路径资源或属性元素的url属性中加载的属性会被读取,并且会覆盖已经读取过的同名属性
· 作为方法参数的属性最后读取,并且覆盖之前从属性体和资源/url属性中读取的同名属性。
这样一来,拥有最高优先级的属性是方法参数中的属性,然后是资源/url属性,最后是在属性元素体中定义的属性。
P12:
设置选项:
下面这些是极重要的调整MyBatis运行时的行为的方式。下表描述了这些设置、含义及默认值。
Setting | Description | Valid Values | Default |
cacheEnabled | 全局地禁用或启用配置下的任何mapper中配置的缓存 | true | false | true |
lazyLoadingEnabled | 全局地禁用或启用延迟加载。禁用时,所有关联查询会被马上加载 | true | false | true |
aggressiveLazyLoading | 当启用时,使用延迟加载属性的对象在发起任何延迟属性的调用时会被完全加载。否则,每个属性在请求时就加载。 | true | false | true |
multipleResultSetsEnabled | 允许或禁止从一条语句中返回多个结果集(需要驱动支持) | true | false | true |
useColumnLabel | 使用列标签而非列名。在这一点上不同的驱动有着不同的行为。请参考驱动文档或2种模式都测试一下,以确定你使用的驱动是如何工作的。 | true | false | true |
useGeneratedKeys | 允许jdbc支持生成的主键(generated keys)。需要与之兼容的驱动支持。这项如果设置成true,就强制使用生成键,某些驱动虽然不支持但仍可以这么用,如Derby | true | false | False |
autoMappingBehavior | 定义MyBatis是否和怎么自动将列映射成字段/属性。PARTIAL只自动映射简单、非嵌套结果。FULL可以自动映射任何复杂的结果(嵌套或非嵌套) | NONE, PARTIAL, FULL | PARTIAL |
defaultExecutorType | 配置默认的执行器。SIMPLE执行器不做任何特殊的事情。REUSE执行器可重用prepared statement。BATCH执行器可重用statement,并进行批量更新 | SIMPLE REUSE BATCH | SIMPLE |
defaultStatementTimeout | 指定驱动等待数据库响应的超时时间。 | 任意正整数 | Not Set (null) |
下面是一个完整的配置的例子: