Mybatis系列二:配置文件参数详解

1、SqlMapConfig.xml配置文件详解

配置名称

配置含义

配置简介

configration

propeties

setting

typeAliases

类型别名

typeHandlers

类型处理器

将SQL中返回的数据库类型转换为相应的Java类型的处理器配置

objectFactory

对象工厂

实例化工厂类配置

plugins

environments

环境集合属性对象

environment

transactionManager

事务管理

指定Mybatis的事务管理器

dataSource

数据源

其中:

type-指定数据源的连接类型

property-指定数据库连接池的其他信息:driver,URL,username,password等

mappers

映射器

配置SQL映射文件的位置,告知Mybatis去哪里加载SQL映射配置

2、properties配置分析

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

如上properties是配置基本数据库信息,其中property中的属性值配置到了文件db.properties中。

在标签properties和标签property中可以使用"${}"进行占位操作。

3、setting配置分析

属性名

含义

描述

有效值

默认值

cacheEnabled

是否使用缓存

全局缓存开关

true/false

true

lazyLoadingEnabled

是否开启延迟加载

控制全局是否使用延迟加载

true/false

false

aggressiveLazyLoading

是否按需加载属性

true时,不管调用什么方法加载某个对象,都会加载该对象的所有属性

true/false

false

multipleResultSetsEnabled

是否允许单一语句返回多结果集

返回多个结果集

true/false

true

useColumnLabel

使用列标签代替列名

设置使用列标签代替列名

true/false

true

useGeneratedKeys

是否支持JDBC自动生成主键

设置置换,将会强制使用自动生成主键的策略

true/false

false

autoMappingBehavior

指定Mybatis自动映射字段或属性的方式

方式1:NONE自动取消映射;

方式2:PARTIAL只会自动映射没有定义结果集的结果映射;

方式3:FULL映射任意复杂的结果集。

NONE、PARTIAL、FULL

PARTIAL

defaultExecutorType

设置默认的执行器

执行器1:SIMPLE普通执行器;

执行器2:REUSE执行器会重用与处理语句;

执行器3:BATCH执行器将重用语句并执行批量更新。

SIMPLE

REUSE

BATCH

SIMPLE

defaultStatementTimeout

超时时间

数据库驱动连接数据库的时间,等待数据库回应的最大秒数

任意整数(一般3s)

localCacheScope

利用本地缓存机制防止循环引用和加速重复嵌套查询

默认值是session,这种情况下会缓存一个会话中执行的所有查询。如果设置为statement,本地会话仅用在语句执行上,对相同sqlsession的不同调用将不会共享数据。

session

statement

session

jdbcTypeForNull

jdbc类型的默认值

null

varchar

other

other

lazyLoadTriggerMethods

指定某个方法触发一次延迟加载

一个用逗号分隔的方法列表

equals,clone,hashcode,toString

returnInstanceForEmptyRow

返回空实体对象

当返回的所有列都为空时,Mybatis默认返回full,当开启这个设置时,Mybatis会返回一个空实例。

true/false

false

logPrefix

日志前缀

指定Mybatis增加到日志名称的前缀

任意字符串

logImpl

日志实现

指定Mybatis所用日志的具体实现,未指定时将自动查找

proxyFactory

代理工程

指定Mybatis创建具有延迟加载能力的对象所用到的代理工具

CGLIB

JAVASSIST

JAVASSIST

vfsImpl

vfs实现

指定vsf的实现

自定义VFS的实现的类权限定名,以逗号分隔

useActualParamName

使用方法签名

允许使用方法签名中的名称作为语句参数名称

true/false

false

4、typeAliases配置分析

定义别名的规范就是对应包装类的类名首字母变小写。

别名也可以用注解来实现@Alias。其中的参数就是该类对应的别名。

5、Mapper映射文件

属性名

含义

所属标签

id

select

parameterType

select

resultType

select

resultMap

select

flushCache

是否清空本地缓存和二级缓存

select

useCache

执行结果是否保存二级缓存

select

timeout

抛出异常前,程序等待的最大秒数

select

fetchSize

设置驱动程序每次批量返回结果的行数

select

statementType

statement的类型

select

resultSetType

结果集类型

select

databaseId

select

resultOrdered

在嵌套查询语句中使用,如果设置为true,则表示SQL执行结果为嵌套结果或分组

select

resultSets

select

userGeneratedKeys

获取有数据库内部生成的主键,插入是返回主键id等。

insert/update

keyProperty

代表主键,一般和userGeneratedKeys使用

insert/update

keyColum

当主键列不是表中的第一列时需要设置该属性。如果希望得到多个生成的列,也可以用逗号分隔属性名称列表。

insert/update

6、其他基础信息

1、使用${}接受用户传来的字符串并将其拼接到SQL语句中是不安全,会引发SQL注入攻击。

2、Mapper配置输出的对象中可以使Map集——resultMap。

3、discriminator(鉴别器):需要根据某个字段的值,来决定关联哪种结果集。(本质就是对象引用)

4、当查询语句的查询条件由于输入参数的不同无法确切定义时,可以使用“<where>”和“<if test="">”来设置SQL的查询条件。

发布了327 篇原创文章 · 获赞 133 · 访问量 63万+

猜你喜欢

转载自blog.csdn.net/qq_30507287/article/details/85965863
今日推荐