目录
properties(属性配置)
<properties resource="" url="">
<property name="" value=""/>
...
</properties>
ibatis中加载属性配置的方式有三种.
方式 | 描述 |
a | 直接使用字面量的形式,在内标签property中配置; |
b | 加载properties配置文件的数据,有两种途径可供选择. resource:从classpath路径中加载文件; url:从网络路径或者物理磁盘路径中加载文件; |
c | 使用java.util.Properties的类实例进行配置,借用的是 org.apache.ibatis.session.SqlSessionFactoryBuilder.build() 的重写的方法. |
优先级 | c>b>a . |
属性占位符的功能(最低版本3.4.2).
${key:defalut-value};表示指定的key若无法取值的话,就使用符号`:`指定的默认值.
注意:属性占位符的功能默认是关闭的,需要手动开启.
<property
name="org.apache.ibatis.parsing.PropertyParser.enable-default-value"
value="true" />
也可以使用ONGL表达式中的三元运算符,来使用属性占位符.
但也需要额外修改ibatis的默认配置.
<property
name="org.apache.ibatis.parsing.PropertyParser.enable-default-value"
value="true" />
<property
name="org.apache.ibatis.parsing.PropertyParser.default-value-separator"
value="?:" />
settings(设置ibatis运行状态)
这是ibatis中最复杂的配置,修改默认设置,会变更ibatis的运行状态.
如无特别需求,不建议设置.
<settings>
<setting name="" value="" />
...
</settings>
可设置的属性列表
属性/name | 描述说明 | 合法值(类型) | 默认值 |
cacheEnabled | 映射器的配置缓存/cache,是否全局开启 | 布尔值 | true |
lazyLoadingEnabled | 延迟加载,是否全局开启. 若开启,所有的关联对象都会延迟加载. 有特殊需求,可通过设置fetchType属性来覆盖. |
布尔值 | false |
aggressiveLazyLoading | 任何方法调用都加载该类的所有属性,是否全局开启. 否则按需加载,可参考属性lazyLoadTriggerMethods |
布尔值 | false 3.4.2之前,是true. |
multipleResultSetsEnabled | 是否允许单一结果返回多结果集.(需要兼容驱动) | 布尔值 | true |
useColumnLabel | 是否,使用列标签替代列名.(需要兼容驱动) | 布尔值 | true |
useGeneratedKeys | 是否,允许JDBC支持自动主键生成.(需要兼容驱动) | 布尔值 | false |
autoMappingBehavior | 设置ibatis自动映射列,到字段或属性的行为. NONE:取消自动映射; PARTIAL:映射没有定义嵌套结果集映射的结果集. |
NONE|PARTIAL| FULL |
PARTIAL |
autoMappingUnknown ColumnBehavior |
自动映射中,发现未知列或属性的处理行为. WARNING:输出警告日志; |
NONE|WARNING| FAILING |
NONE |
defaultExecutorType | 指定默认的执行器. |
SIMPLE|REUSE| BATCH |
SIMPLE |
defaultStatementTimeout | 设置超时时间 | 任意正整数 | \ |
defaultFetchSize |