1. xml结构(可查看mybatis-3-config.dtd)

<!ELEMENT configuration (properties?, settings?, typeAliases?, typeHandlers?, objectFactory?, objectWrapperFactory?, plugins?, environments?, databaseIdProvider?, mappers?)>

<!ELEMENT databaseIdProvider (property*)>
<!ATTLIST databaseIdProvider
type CDATA #REQUIRED
> <!ELEMENT properties (property*)>
<!ATTLIST properties
resource CDATA #IMPLIED
url CDATA #IMPLIED
> <!ELEMENT property EMPTY>
<!ATTLIST property
name CDATA #REQUIRED
value CDATA #REQUIRED
> <!ELEMENT settings (setting+)> <!ELEMENT setting EMPTY>
<!ATTLIST setting
name CDATA #REQUIRED
value CDATA #REQUIRED
> <!ELEMENT typeAliases (typeAlias*,package*)> <!ELEMENT typeAlias EMPTY>
<!ATTLIST typeAlias
type CDATA #REQUIRED
alias CDATA #IMPLIED
> <!ELEMENT typeHandlers (typeHandler*,package*)> <!ELEMENT typeHandler EMPTY>
<!ATTLIST typeHandler
javaType CDATA #IMPLIED
jdbcType CDATA #IMPLIED
handler CDATA #REQUIRED
> <!ELEMENT objectFactory (property*)>
<!ATTLIST objectFactory
type CDATA #REQUIRED
> <!ELEMENT objectWrapperFactory (property*)>
<!ATTLIST objectWrapperFactory
type CDATA #REQUIRED
> <!ELEMENT plugins (plugin+)> <!ELEMENT plugin (property*)>
<!ATTLIST plugin
interceptor CDATA #REQUIRED
> <!ELEMENT environments (environment+)>
<!ATTLIST environments
default CDATA #REQUIRED
> <!ELEMENT environment (transactionManager,dataSource)>
<!ATTLIST environment
id CDATA #REQUIRED
> <!ELEMENT transactionManager (property*)>
<!ATTLIST transactionManager
type CDATA #REQUIRED
> <!ELEMENT dataSource (property*)>
<!ATTLIST dataSource
type CDATA #REQUIRED
> <!ELEMENT mappers (mapper*,package*)> <!ELEMENT mapper EMPTY>
<!ATTLIST mapper
resource CDATA #IMPLIED
url CDATA #IMPLIED
class CDATA #IMPLIED
> <!ELEMENT package EMPTY>
<!ATTLIST package
name CDATA #REQUIRED
>

2. setting标签参数说明

参数说明
参数 描述 默认值
cacheEnabled 配置全局的启用或禁用缓存策略。 true|false true
lazyLoadingEnabled 全局启用或禁用延迟加载。当禁用时, 所有关联都会马上被加载。 true|false false
aggressiveLazyLoading

当启用时, 有延迟加载属性的对象在被调用时将所有属性都进行加载。否则,

该对象的每个属性将会按需加载。

true|false true
useColumnLabel

使用列标签代替列名。不同的驱动在这 方便方式不同。参考驱动文档或充分测

试来判断所使用的驱动方式。

true|false true
useGeneratedKeys

JDBC支持主键生成策略,需要驱动兼容,当值设定为true时会强制使用主键生成,

即使在某些驱动中不能兼容但依然有效。

true|false true
defaultStatementTimeout 设置数据库的超时响应时间

Any positive integer

(任意数值)

not set
localCacheScope

定义本地缓存范围来预防循环引用及重复嵌套的查询,如果值为session,所有的

查询结果在session平级的范围中被缓存,如果值为statement,那么缓存将不能

在两个不同的SqlSession中被共享

session|statement session
defaultExecutorType

配置默认的执行器,simple无特殊处理、reuse能重利用预编译的Statement。

batch能重利用预编译的Statement并支持批量更新

simple|reuse|batch simple
autoMappingBehavior

指定 MyBatis 如何自动映射列到字段/ 属性。none不使用自动映射,partial只

会自动映射简单, 没有嵌套的结果。full会自动映射任意复杂的结果(嵌套的或

其他情况)

none|partial|full partial
jdbcTypeForNull

当没有特别的JDBC类型参数被提供,指定JDBC空值类型为定义值,一些驱动需要指

定jdbctype,而其他的通常做法是使用NULL,VARCHAR或者OTHER

  other
logImpl 指定MyBatis中使用何种的日志处理程序

SLF4J | LOG4J |

LOG4J2 | JDK_LOGGING |

COMMONS_LOGGING |

STDOUT_LOGGING |

NO_LOGGING

not set
logPrefix 指定MyBatis中的日志文件名称的前缀 Any String not set
multipleResultSetsEnabled 允许或不允许一个Statement返回多个ResultSet(需要适合的驱动) true|false true
safeRowBoundsEnabled 允许在嵌套的statement中使用RowBounds(Mybatis中的分页处理) true|false false
mapUnderscoreToCamelCase 允许自动映射数据库列名称为复合词,例如:x_xx自动映射为xXxx,驼峰命名 true|false false
callSettersOnNulls

当结果集中含有Null值时是否执行映射对象的setter或者Map对象的put方法。此

设置对于原始类型(基本类型)如int,boolean等无效

true | false false
lazyLoadTriggerMethods 指定对象的哪些方法会被延迟加载

A method name list

separated by commas

(用逗号分隔的方法名列表)

{ "equals", "clone",

"hashCode", "toString" }

proxyFactory 指定MyBatis用于延迟加载对象的动态代理工具 cglib| JAVASSIST(jdk) CGLIB
       

mybatis配置文件说明(configuration)的更多相关文章

  1. mybatis配置文件,注意标签配置顺序。否则报错The content of element type "configuration" must match "(properties?,settings?,...怎么解决

    感谢原作者http://www.cnblogs.com/zhoumingming/p/5417014.html 注意每个标签必须按照顺序写,不然就会提示错误 顺序是 <?xml version= ...

  2. MyBatis学习(四)、MyBatis配置文件

    四.MyBatis主配置文件 在定义sqlSessionFactory时需要指定MyBatis主配置文件: <bean id="sqlSessionFactory" clas ...

  3. MyBatis配置文件解析

    MyBatis配置文件解析(概要) 1.configuration:根元素 1.1 properties:定义配置外在化 1.2 settings:一些全局性的配置 1.3 typeAliases:为 ...

  4. MyBatis学习 之 四、MyBatis配置文件

    目录(?)[-] 四MyBatis主配置文件 properties属性 settings设置 typeAliases类型别名 typeHandlers类型句柄 ObjectFactory对象工厂 pl ...

  5. 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    [转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...

  6. MyBatis的学习总结三:优化MyBatis配置文件中的配置

    一.优化Mybatis配置文件conf.xml中数据库的信息 1.添加properties的配置文件,存放数据库的信息:mysql.properties具体代码: driver=com.mysql.j ...

  7. 详解mybatis配置文件

    在前面两篇文章中,大致与大家分享了基于Java的ORM框架,Mybatis基本架构和Mybatis实现CRUD的基本原理与流程,在本篇文章中,继续与大家分享Mybatis配置文件. 通过研究Mybat ...

  8. mybatis 配置文件全解

    目录 properties settings typeAliases mappers properties mybatis配置文件中,可以像代码一样定义变量,然后在配置文件的其他地方使用,比如数据库连 ...

  9. Mybatis系列(二):优化MyBatis配置文件中的配置和解决字段名与实体类属性名不相同的冲突

    原文链接:http://www.cnblogs.com/xdp-gacl/p/4264301.html     http://www.cnblogs.com/xdp-gacl/p/4264425.ht ...

  10. Mybatis(一):MyBatis配置文件config.xml详解

    MyBatis 配置文件基本结构 在使用mybatis框架时,首先导入其对应的jar包,并进行相应的配置,所以得对配置文件的每个参数都得了解.一个完全的mybatis配置文件结构如下: <?xm ...

随机推荐

  1. 微信公众号的开发 Senparc.Weixin.dll使用

    项目需要,做个微信公众号,之前从未做过,前期挺懵的,再次记录一下,一切困难都是纸老虎(哈哈) 服务号是公司申请的微信公共账号,订阅号是个人申请的.建议开发者自己申请一个测试账号,方便使用,但是测试账号 ...

  2. [CERC2017] Intrinsic Interval

    首先理清这奇葩题意表述 给出一个\(1\)到\(n\)的排列\(p[]\)和\(m\)次询问,每次询问覆盖区间\([l,r]\)的最小区间\([a,b]\),满足\([a,b]\)内的元素排序后是连续 ...

  3. C# 多线程学习笔记 - 3

    本文主要针对 GKarch 相关文章留作笔记,仅在原文基础上记录了自己的理解与摘抄部分片段. 遵循原作者的 CC 3.0 协议. 如果想要了解更加详细的文章信息内容,请访问下列地址进行学习. 原文章地 ...

  4. AspNetCore 使用NLog日志,NLog是基于.NET平台开的类库!(又一神器)

    NLog是一个基于.NET平台编写的类库,我们可以使用NLog在应用程序中添加极为完善的跟踪调试代码. NLog是一个简单灵活的.NET日志记录类库.通过使用NLog,我们可以在任何一种.NET语言中 ...

  5. 《HelloGitHub》第 12 期

    <HelloGitHub>第 12 期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览 GitHub 过程中,发现的有意思.高 ...

  6. 使用docker-compose来部署开发环境

    docker-compose的作用 docker-comopse可以帮助我们快速搭建起开发环境,比如你可以去把redis,mongodb,rabbitmq,mysql,eureka,configser ...

  7. WebAssembly完全入门——了解wasm的前世今身

    前言 接触WebAssembly之后,在google上看了很多资料.感觉对WebAssembly的使用.介绍.意义都说的比较模糊和笼统.感觉看了之后收获没有达到预期,要么是文章中的例子自己去实操不能成 ...

  8. Chapter 4 Invitations——17

    "Then why —"He shrugged. "I was hoping you were just letting him down easy." “这为 ...

  9. 老代码多=过度耦合=if else?阿里巴巴工程师这样捋直老代码

    简介 在业务开发的过程中,往往存在平台代码和业务代码耦合严重难以分离.业务和业务之间代码交织缺少拆解的现象.平台和业务代码交织导致不易修改,不同业务的代码交织增加了不同负责团队之间的协同成本.因此不论 ...

  10. JavaScript 文档对象模型(DOM)

    文档对象模型     通过 JavaScript,您可以重构整个 HTML 文档.您可以添加.移除.改变或重排页面上的项目.要改变页面的某个东西,JavaScript 就需要获得对 HTML 文档中所 ...