编程语言您现在的位置是:首页 > 博客日志 > 编程语言

mybatis中的setting配置详解

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-10-11编程语言 2 0关键字: mybatis  setting  

这篇文章主要给大家介绍了关于mybatis中setting配置的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

mybatis中的setting配置详解8uB无知

这篇文章主要给大家介绍了关于mybatis中setting配置的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。8uB无知

在mybaits中,setting的的配置参数如下(如果不在配置文件中配置将使用默认值):8uB无知

设置参数描述有效值默认值8uB无知

cacheEnabled该配置影响的所有映射器中配置的缓存的全局开关true | falsetrue8uB无知

lazyLoadingEnabled延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态true | falsefalse8uB无知

aggressiveLazyLoading当启用时,对任意延迟属性的调用会使带有延迟加载属性的对象完整加载;反之,每种属性将会按需加载。true | falsetrue8uB无知

multipleResultSetsEnabled是否允许单一语句返回多结果集(需要兼容驱动)。true | falsetrue8uB无知

useColumnLabel使用列标签代替列名。不同的驱动在这方面会有不同的表现, 具体可参考相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果。true | falsetrue8uB无知

useGeneratedKeys允许 JDBC 支持自动生成主键,需要驱动兼容。 如果设置为 true 则这个设置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 Derby)。true | falseFalse8uB无知

autoMappingBehavior指定 MyBatis 应如何自动映射列到字段或属性。 NONE 表示取消自动映射;PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。 FULL 会自动映射任意复杂的结果集(无论是否嵌套)。NONE, PARTIAL, FULLPARTIAL8uB无知

defaultExecutorType配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepared statements); BATCH 执行器将重用语句并执行批量更新。SIMPLE REUSE BATCHSIMPLE8uB无知

defaultStatementTimeout设置超时时间,它决定驱动等待数据库响应的秒数。Any positive integerNot Set (null)8uB无知

defaultFetchSizeSets the driver a hint as to control fetching size for return results. This parameter value can be override by a query setting.Any positive integerNot Set (null)8uB无知

safeRowBoundsEnabled允许在嵌套语句中使用分页(RowBounds)。true | falseFalse8uB无知

mapUnderscoreToCamelCase是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。true | falseFalse8uB无知

localCacheScopeMyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。 默认值为 SESSION,这种情况下会缓存一个会话中执行的所有查询。 若设置值为 STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。SESSION | STATEMENTSESSION8uB无知

jdbcTypeForNull当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。JdbcType enumeration. Most common are: NULL, VARCHAR and OTHEROTHER8uB无知

lazyLoadTriggerMethods指定哪个对象的方法触发一次延迟加载。A method name list separated by commasequals,clone,hashCode,toString8uB无知

defaultScriptingLanguage指定动态 SQL 生成的默认语言。A type alias or fully qualified class name.org.apache.ibatis.scripting.xmltags.XMLDynamicLanguageDriver8uB无知

callSettersOnNulls指定当结果集中值为 null 的时候是否调用映射对象的 setter(map 对象时为 put)方法,这对于有 Map.keySet() 依赖或 null 值初始化的时候是有用的。注意基本类型(int、boolean等)是不能设置成 null 的。true | falsefalse8uB无知

logPrefix指定 MyBatis 增加到日志名称的前缀。Any StringNot set8uB无知

logImpl指定 MyBatis 所用日志的具体实现,未指定时将自动查找。SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGINGNot set8uB无知

proxyFactory指定 Mybatis 创建具有延迟加载能力的对象所用到的代理工具。CGLIB | JAVASSISTJAVASSIST (MyBatis 3.3 or above)8uB无知

在实际的应用中要根据自己的需求进行配置:8uB无知

比如我在项目中的配置一般如下:8uB无知

<settings>8uB无知

<setting name="jdbcTypeForNull" value="NULL" />8uB无知

<setting name="logImpl" value="SLF4J" />8uB无知

<setting name="mapUnderscoreToCamelCase" value="true" />8uB无知

<setting name="defaultExecutorType" value="BATCH" />8uB无知

</settings>8uB无知

注意点:有点的配置的log4j的日志打印不出sql语句时,不仅要检查log4j的配置文件,还有一点特别重要就是8uB无知

name="logImpl" value="SLF4J" />8uB无知

的配置,应该指明配置(如果用的是LOG4J),比如:8uB无知

<configuration>8uB无知

<settings>8uB无知

<setting name="logImpl" value="LOG4J"/>8uB无知

</settings>8uB无知

</configuration>8uB无知

总结8uB无知

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对脚本之家的支持。8uB无知


8uB无知

本文为转载文章,版权归原作者所有,不代表本站立场和观点。

很赞哦! () 有话说 ()