10.5MyBatis的配置文件10.5.2<properties>元素·在Mybatis的配置文件中加入<properties>元素,具体代码如下。<properties resource-"database.properties">1<dataSourcetype="POOLED"><!--数据源-->·此时,<dataSource>元素2<propertyname="driver"value="s(jdbc.driver)"/>的代码可直接引用3<propertyname="uri"value="s(jdbc.urlj"/>4<property name="username"value="s(jdbc.username)"/><property>元素中的信息,5<property name-"password"value="s(jdbc.password)"/>具体如。6</datasource>,如此一来,<properties>元素通过properties文件实现参数配置。此处需要提醒大家的是,MyBatis支持<property>子元素和properties文件两种配置形式同时出现。当上述两种配置形式同时出现时,MyBatis会首先读取<properties>元素体内的内容,然后读取properties文件中的内容,如果有同名属性,后读取的内容会覆盖掉先读取的内容,即properties文件中的内容优先被程序采用
• 在Mybatis的配置文件中加入<properties>元素,具体代码如下。 • 此时,<dataSource>元素 的代码可直接引用 <property>元素中的信息, 具体如。 <properties resource="database.properties"> 1 <dataSource type="POOLED"><!-数据源 -> 2 <property name="driver" value="${jdbc.driver}"/> 3 <property name="url" value="${jdbc.url}"/> 4 <property name="username" value="${jdbc.username}"/> 5 <property name="password" value="${jdbc.password}"/> 6 </dataSource> 1 • 如此一来,<properties>元素通过properties文件实现参数配置。此处需要提醒大家的是,MyBatis支 持<property>子元素和properties文件两种配置形式同时出现。当上述两种配置形式同时出现时, MyBatis会首先读取<properties>元素体内的内容,然后读取properties文件中的内容,如果有同名属 性,后读取的内容会覆盖掉先读取的内容,即properties文件中的内容优先被程序采用。 10.5.2 <properties>元素 10.5 MyBatis的配置文件
10.5MyBatis的配置文件10.5.3<settings>元素<settings>是MyBatis中较为复杂的配置元素,同时也包含重要的配置内容,这些内容控制着MyBatis运行时的状态和行为。因此,理解<settings>元素的常用配置内容有助于更好地使用MyBatis框架完成开发。<settings>元素包含的配置内容如表所示。设置参数描述有效值联认值TRUE全局开启或关闭配置文件中所有映射器TRUE|FALSEcacheEnabled已配置的任何缓存FALSE延迟加载的全局开关。当开启时,所有TRUE|FALSElazyLoadingEnable关联对象都会延返加载。特定关联关系d中可通过设置fetchType属性来覆盖该项的开关状态当开启时,任何方法的调用都会加载该FALSETRUE|FALSEaggressiveLazyLoa对象的所有属性:否则,每个属性会按ding需加载TRUEmultipleResultSetsETRUE|FALSE是否允许单一语句返回多结果集nabledTRUEuseColumnLabel使用列标签代替列名TRUE|FALSE
10.5.3 <settings>元素 • <settings>是MyBatis中较为复杂的配置元素,同时也包含重要的配置内容,这些内容控制着MyBatis 运行时的状态和行为。因此,理解<settings>元素的常用配置内容有助于更好地使用MyBatis框架完成 开发。<settings>元素包含的配置内容如表所示。 设置参数 描述 有效值 默认值 cacheEnabled 全局开启或关闭配置文件中所有映射器 已配置的任何缓存 TRUE | FALSE TRUE lazyLoadingEnable d 延迟加载的全局开关。当开启时,所有 关联对象都会延迟加载。特定关联关系 中可通过设置 fetchType 属性来覆盖该项 的开关状态 TRUE | FALSE FALSE aggressiveLazyLoa ding 当开启时,任何方法的调用都会加载该 对象的所有属性;否则,每个属性会按 需加载 TRUE | FALSE FALSE multipleResultSetsE nabled 是否允许单一语句返回多结果集 TRUE | FALSE TRUE useColumnLabel 使用列标签代替列名 TRUE | FALSE TRUE 10.5 MyBatis的配置文件
10.5MyBatis的配置文件10.5.3<settings>元素FALSE许JDBC支持自动生成主键,如果设TRUEIFALSEuseGeneratedK置为TRUE,则强制使用自动生成主键eys指定MyBatis如何自动映射列到宇段或NONE、PARTIALPARTIAL属性。NONE表示取消白动映射,FULLautoMappingBehaviPARTIAL只会白动映射没有定义嵌套结or果集映射的结果集,FULL会白动映射任意复杂的结果集NONE指定发现白动映射目标术知列成未知属NONE、WARNING性类型的行为。NONE表示不做任何反FAILINGautoMappingUnkno应,WARNING表示输出提醒日志,wnColumnBehaviorFAILING表示映射失败、抛出SqlSessionException配置默认的执行器。SIMPLE就是普通SIMPLE、REUSE、BATCHSIMPLEdefaultExecutorTyp的执行器:REUSE执行器会重用预处理e语句:BATCH执行器将重用语句并执行批量更新没有设置defaultStatementTi设置超时时间,它决定驱动等待数据库任意正整数meout响应的秒数没有设置为驱动的结果集获取数量(fetchSize)任意正整数defaultFetchSize设置一个提示值允许在嵌套语句中使用分页TRUE|FALSEFALSEsafeRowBoundsEna(RowBounds),如果允许使用则设置为bledFALSE
useGeneratedK eys 允许 JDBC 支持自动生成主键,如果设 置为 TRUE,则强制使用自动生成主键 TRUE | FALSE FALSE autoMappingBehavi or 指定 MyBatis 如何自动映射列到字段或 属性。NONE 表示取消自动映射, PARTIAL 只会自动映射没有定义嵌套结 果集映射的结果集,FULL 会自动映射 任意复杂的结果集 NONE 、PARTIAL 、 FULL PARTIAL autoMappingUnkno wnColumnBehavior 指定发现自动映射目标未知列或未知属 性类型的行为。NONE 表示不做任何反 应,WARNING表示输出提醒日志, FAILING 表示映射失败、抛出 SqlSessionException NONE、WARNING 、 FAILING NONE defaultExecutorTyp e 配置默认的执行器。SIMPLE 就是普通 的执行器;REUSE 执行器会重用预处理 语句;BATCH 执行器将重用语句并执 行批量更新 SIMPLE、REUSE、BATCH SIMPLE defaultStatementTi meout 设置超时时间,它决定驱动等待数据库 响应的秒数 任意正整数 没有设置 defaultFetchSize 为驱动的结果集获取数量(fetchSize) 设置一个提示值 任意正整数 没有设置 safeRowBoundsEna bled 允许在嵌套语句中使用分页 (RowBounds),如果允许使用则设置为 FALSE TRUE | FALSE FALSE 10.5.3 <settings>元素 10.5 MyBatis的配置文件
10.5MyBatis的配置文件10.5.3<settings>元素允许在嵌套语向中使用分页TRUETRUEFALSEsafeResultHan(ResultHandler),如果允许使用则设置dlerEnabled为FALSEFALSE是否开启自动峰命名规则映射,即从TRUE|FALSEmapUnderscoreToC经典数据库列名ACOLUMN到经典amelCaseJava 属性名aColumn的类似映射MyBatis利用本地缓存机制防止循环引SESSIONSESSION、STATEMENT用和加速重复嵌套查询。如果设置值为SESSION,那么会缓存一个会话中执行的所有查询。如果设置值为localCacheScopeSTATEMENT,本地会话仅用在语句执行上,对相同SqlSession的不同调用将不会共享数据当没有为参数提供特定的JDBC类型OTHERNULL、VARCHAR.jdbcTypeForNullOTHER时,为空值指定JDBC类型方法名的list集合equals,clone,hashlazyLoadTriggerMe指定哪个对象的方法触发一次延迟加载thodsCode,toString
safeResultHan dlerEnabled 允许在嵌套语句中使用分页 (ResultHandler),如果允许使用则设置 为 FALSE TRUE | FALSE TRUE mapUnderscoreToC amelCase 是否开启自动驼峰命名规则映射,即从 经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射 TRUE | FALSE FALSE localCacheScope MyBatis 利用本地缓存机制防止循环引 用和加速重复嵌套查询。如果设置值为 SESSION,那么会缓存一个会话中执行 的所有查询。 如果设置值为 STATEMENT,本地会话仅用在语句执 行上,对相同 SqlSession 的不同调用将 不会共享数据 SESSION 、STATEMENT SESSION jdbcTypeForNull 当没有为参数提供特定的 JDBC 类型 时,为空值指定 JDBC 类型 NULL、VARCHAR、 OTHER OTHER lazyLoadTriggerMe thods 指定哪个对象的方法触发一次延迟加载 方法名的 list 集合 equals, clone,hash Code,toStr ing 10.5.3 <settings>元素 10.5 MyBatis的配置文件
10.5MyBatis的配置文件10.5.3<settings>元素一个类型别名或完全限定类org-apache名.ibatis.scridefaultScriptinpting-xmlt指定动态SQL生成的默认语言ags.XMLgLanguageLanguageDriver任何字符串没有设置logPrefix指定MyBatis增加到日志名称的前缓SLF4J、LOG4J没有设置LOG4J2、指定MyBatis所用日志的具体实现,未JDK LOGGINGloglmpl指定时将自动查找COMMONS_LOGGING、STDOUT_LOGGING,NO_LOGGING类型别名或全类名没有设置指定一个提供Configuration对象的类。这个返回的Configuration对象用来加载configurationFactor被反序列化对象的懒加载属性值。这个y类必须包含一个签名方法staticConfiguration getConfigurationO
defaultScriptin gLanguage 指定动态 SQL 生成的默认语言 一个类型别名或完全限定类 名 org.apache .ibatis.scri pting.xmlt ags.XML Language Driver logPrefix 指定 MyBatis 增加到日志名称的前缀 任何字符串 没有设置 logImpl 指定 MyBatis 所用日志的具体实现,未 指定时将自动查找 SLF4J、 LOG4J LOG4J2 、 JDK_LOGGING 、 COMMONS_LOGGING、 STDOUT_LOGGING、 NO_LOGGING 没有设置 configurationFactor y 指定一个提供 Configuration 对象的类。 这个返回的 Configuration 对象用来加载 被反序列化对象的懒加载属性值。这个 类必须包含一个签名方法 static Configuration getConfiguration() 类型别名或全类名 没有设置 10.5.3 <settings>元素 10.5 MyBatis的配置文件