Mybatis源码分析(三) - Mybatis配置(mybatis-config.xml)

mybatis-config.xml 配置

序号属性名说明备注
1properties 定义配置,配置的属性可以在整个配置文件中其他位置进行引用重要,优先使用property配置文件解耦
2settings 设置,用于指定MyBatis的一些全局配置属性,这些属性非常重要,
它们会改变MyBatis的运行时行为
重要
3typeAliases别名,为Java类型设置一个短的名字,映射时方便使用;分为系统定
义别名和自定义别名
可以通过xml和注解配置
4typeHandlers用于jdbcType与javaType之间的转换无特殊需求不需要调整
5ObjectFactoryMyBatis每次创建结果对象的新实例时,它都会使用对象工厂
(ObjectFactory)去构建POJO
大部分场景下无需修改
7plugins插件,MyBatis允许你在已映射的语句执行过程中的某一点进行拦截
调用
 
8environments用于配置多个数据源,每个数据源分为数据库源和事务的配置 在多数据源环境使用 8 databaseIdProvider  MyBatis可以根据不同的数据库厂商执行不同的语句,用于一个系统
内多厂商数据源支持
大部分场景下无需修改
9mappers配置引入映射器的方法。可以使用相对于类路径的资源引用、或完全
限定资源定位符(包括file:///的URL),或类名和包名等等
 
    

Mybatis配置 setting

设置参数 描述 有效值 默认值
cacheEnabled 该配置影响的所有映射器中配置的缓存的全局开关true | fals
e
true
lazyLoadingEnabled延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联
关系中可通过设置fetchType属性来覆盖该项的开关状态
true | fals
e
false
aggressiveLazyLoading当启用时,对任意延迟属性的调用会使带有延迟加载属性的对象完整加载;
反之,每种属性将会按需加载。
true | fals
e
true
multipleResultSetsEnabl
ed
是否允许单一语句返回多结果集(需要兼容驱动)。true | fals
e
true
useColumnLabel使用列标签代替列名。不同的驱动在这方面会有不同的表现, 具体可参考
相关驱动文档或通过测试这两种不同的模式来观察所用驱动的结果。
true | fals
e
true
useGeneratedKeys允许 JDBC 支持自动生成主键,需要驱动兼容。 如果设置为 true 则这个设
置强制使用自动生成主键,尽管一些驱动不能兼容但仍可正常工作(比如 D
erby)。
true | fals
e
false
autoMappingBehavior指定 MyBatis 应如何自动映射列到字段或属性。 NONE 表示取消自动映射;
PARTIAL 只会自动映射没有定义嵌套结果集映射的结果集。 FULL 会自动
映射任意复杂的结果集(无论是否嵌套)。
NONE, PA
RTIAL, FU
LL
PARTIAL
defaultExecutorType配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会
重用预处理语句(prepared statements); BATCH 执行器将重用
语句并执行批量更新。
SIMPLE、REU
SE、BATCH
SIMPLE
defaultStatementTimeout 设置超时时间,它决定驱动等待数据库响应的秒数。Any positiv
e integer
Not Set
(null)
safeRowBoundsEnabled允许在嵌套语句中使用分页(RowBounds)。true | false false
mapUnderscoreToCamelCase是否开启自动驼峰命名规则(camel case)映射,即从经典数据库
列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。
true | false false
localCacheScopeMyBatis 利用本地缓存机制(Local Cache)防止循环引用(circula
r references)和加速重复嵌套查询。 默认值为 SESSION,这种情
况下会缓存一个会话中执行的所有查询。 若设置值为 STATEMENT,
本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会
共享数据
SESSION | S
TATEMENT
SESSIO
N
jdbcTypeForNull当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。
某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,
比如 NULL、VARCHAR 或 OTHER。
JdbcType 枚
举,最常见的
是: NULL, VA
RCHAR and
OTHER
OTHER
lazyLoadTriggerMethods指定哪个对象的方法触发一次延迟加载。如果是方法列表用
逗号隔开;
equals,clon
e,hashCode
,toString
callSettersOnNulls指定当结果集中值为 null 的时候是否调用映射对象的 setter
(map 对象时为 put)方法,这对于有 Map.keySet() 依赖或
null 值初始化的时候是有用的。注意基本类型(int、boolean
等)是不能设置成 null 的。
true | false false
logPrefix 指定 MyBatis 增加到日志名称的前缀。Any String Not set
logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。SLF4J | LOG4J | L
OG4J2 | JDK_LOG
GING | COMMO
NS_LOGGING | S
TDOUT_LOGGIN
G | NO_LOGGING
Not set
proxyFactory 指定 Mybatis 创建具有延迟加载能力的对象所用到的代理工具CGLIB | JAVASSIS
T
版本3.3.0以
上JAVASSIS
T
    

Mybatis配置 environments

environment 元素是配置一个数据源的开始,属性id是它的唯一标识

transactionManager 元素配置数据库事务,其中type属性有三种配置方式

  1.  jdbc,采用jdbc的方式管理事务;
  2.  managed,采用容器的方式管理事务,在JNDI数据源中使用;
  3.  自定义,自定义数据库事务管理办法;

dataSource 元素配置数据源连接信息,type属性是连接数据库的方式配置,有四种配置方式

  1. UNPOOLED 非连接池方式连接
  2. POOLED 使用连接池连接
  3. JNDI 使用JNDI数据源
  4.  自定义数据源

Mybatis配置 mapper

用classPath下资源引用 (推荐使用,类文件和mapper文件可以不需要
放在一个文件夹中,xml文件也不会和java文件混合在一起)

<mappers>
<!--直接映射到相应的mapper文件 -->
<mapper resource="sqlmapper/TUserMapper.xml" />
</mappers>

用类注册方式引用

<mappers>
		<mapper class="com.jiulu.mybatis.mapper.TUserMapper" />
</mappers>

使用包名引入引射器名

<mappers>
<!—扫描包下所有的mapper文件 -->
<package name="com.jiulu.mybatis.mapper"/>
</mappers>

 用文件的全路径引用 - 不建议使用

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值