Mybatis全局配置文件配置信息

0 篇文章 0 订阅

一、Mybatis全局配置文件配置信息

配置名称配置含义配置简介
configuration包裹所有配置标签整个配置文件的顶级标签
properties属性

该标签可以引入外部配置的属性,也可以自己配置。该配置标签所在的同一个配置文件中的其他配置均可以引用次配置中的属性。

setting全局配置参数用来配置一些改变运行时行为的信息,例如是否使用缓存机制,是否使用延迟加载,是否使用错误处理机制等。并且可以设置最大并发请求数量、最大并发事务数量,以及是否启用命名空间等。
typeAliases类型别名用来设置一些别名来代替Java的长类型声明(如java.lang.int变为int),减少配置编码的冗余。
typeHandlers类型处理器将SQL中返回的数据类库类型转换为相应Java类型的处理器配置。
objectFactory对象工厂实例化目标类的工厂类配置
plugins插件

可以通过插件修改MyBatis的核心行为,例如对语句执行的某一点进行拦截调用。

environments环境集合属性对象数据库环境信息的集合,在一个配置文件中,可以有多种数据库环境集合,这样可以使MyBatis将SQL同时映射至多个数据库。
environment环境子属性对象数据库环境配置的详细配置
transactionManager事务管理指定MyBatis的事务管理器
dataSource数据源使用其中的type指定数据源的连接类型
mappers映射器配置SQL映射文件的位置,告知MyBatis去哪里加载SQL映射配置

二、properties配置分析

在Mybatis配置文件中,properties标签中的数据可以供整个配置文件中的其他配置使用。properties标签可以引入一个可动态变换的外部配置,如一个传统的Java配置文件,亦或是一个properties参数文件。对于配置文件中的其他配置,可以通过property子标签的name属性来取得相应的value值。

例如:(该properties标签配置如下,引入了一个db.properties文件)

<properties resource="org/mybatis/example/db.properties">
    <property name="username" value="root" />
    <property name="password" value="123456" />
</properties>

          其中引入一个db.properties文件,该文件配置如下:

driver=com.mysql.jdbc.Driver
jurl=jdbc:mysql://localhost:3306/mydb?characterEncoding=utf-8
username=root
password=123456

三、setting配置参数

属性名含义简介有效值默认值

cacheEnabled

是否使用缓存

是整个工程中所有映射器配置缓存的开关,即是一个全局缓存开关

true | falsetrue
lazyLoadingEnable是否开启延迟加载控制全局是否使用延迟加载,当有特殊关联关系需要单独配置时,可以使用fetchType属性来覆盖此配置true | falsefalse
aggressiveLazyLoading是否按需加载属性开启时,不论调用什么方法加载某个对象,都会加载该对象的所有属性,关闭之后只会按需加载true | falsefalse
multipleResultSetsEnabled是否允许单一语句返回多结果集即Mapper配置中一个单一的SQL配置是否 能返回多个结果集true | falsetrue
useColumnLabel使用列标签代替列名设置是否使用列标签代替列名true | falsetrue
useGenerateKeys是否支持JDBC自动生成主键设置之后,将会强制使用自动生成主键的策略true | falsefalse
autoMappingBehavior指定MyBatis自动映射字段或属性的方式有三种方式,NONE时将取消自动映射;PARTIAL时只会自动映射没有定义结果集的结果映射;FULL时会映射任意复杂的结果集NONE,PARTIAL,FULLPARTIAL
autoMappingUnknownColumnBehavior设置当自动映射时发现未知列的动作有三种动作,NONE时不做任何操作;WARING时会输出提醒日志;FALING时会抛出SqlSessionException异常表示映射失败NONE,WARING,FALINGNONE
defaultExecutorType设置默认的执行器有三种执行器,SIMPLE为普通执行器,REUSE执行器会重用与处理语句;BATCH执行器将重用语句并执行批量更新SIMPLE,REUSE,BATCHSIMPLE
defaultStatementTimeout设置超时时间该超时时间即数据库驱动连接数据库时,等待数据库回应的最大秒数任意正整数
defaultFetchSize设置驱动的结果集获取数量(fetchSize)的提示值为了防止从数据库查询出来的结果过多,而导致内存溢出,可以通过设置fetSize参数来控制结果集的数量任意正整数
safeRowBoundsEnable允许在嵌套语句中使用分页(RowBound,即行内嵌套语句)如果允许在SQL的行内嵌套语句中使用分页,就设置该值为falsetrue | falsefalse
safeResultHandlerEnabled允许在嵌套语句中使用分页(ResultHander,即结果集处理)如果允许在SQL的结果语句中使用分页,就设置该值为falsetrue | falsefalse
mapUnderscoreToCamelCase是否开启驼峰命名规则映射表明数据库中的字段名称与工程中Java实体类的映射是否采用驼峰命名规则校验true | false

false

localCacheScopeMyBatis利用本地缓存机制(Local Cache)防止循环引用(circular reference)和加速重复嵌套查询默认值为SESSION,这种情况下会缓存一个会话中执行的所有查询,若设置值为STATEMENT,本地会话仅用在语句执行行上,对相同SQLSession的不同调用将不会共享数据SESSION | STATEMENTSESSION
jdbcTypeForNullJDBC类型的默认设置当没有为参数提供特定的JDBC类型时,为空值指定JDBC类型,多数情况直接用一般类型即可,比如NULL,VARCHAR或OTHER常用NULL,VARCHAR,OTHEROTHER
lazyLoadTriggerMethods指定哪个对象的方法触发一次延迟加载配置需要触发延迟加载的方法的名字,该方法就会触发一次延迟加载一个用逗号分隔的方法名称列表equals,clone,hashCode,toString
defaultScriptingLanguage动态SQL默认语言指定动态SQL生成的默认语言一个类型别名或者一个类的全路径名

org.apache.ibatis.

scripting.xmltags.

XMLLanguageDriver

callSettersOnNulls

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值