Mybatis原理解析之-配置说明

这一章,我们介绍Mybatis的各种配置。
首先我们先来看一下mybatis配置文件的层次结构。

<configuration>
<properties/>
<settings>
<typeAliases>
<typeHandlers>
<objectFactory>
<plugins>
<environments>
<environment>
<transactionManager>
<datasource>
<databaseIdProvider>
<mappers><!--映射器-->
</configuration>

以上就是mybatis的所有配置元素,注意,是配置元素。注意!!这些配置的顺序是不能随便更改的,不然解析会出问题。
下面逐一来介绍这些配置的功能和作用:
1.properties
属性配置。即允许在配置文件的上下文的使用的配置。mybatis提供三种配置方式,分别是:
property子元素、properties配置文件、程序传参
首先来看一个property子元素的实例:

<properties>
    <property name="driver" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/eg" />
    <property name="username" value="me" />
    <property name="password" value="handsome" />
</properties>

这样我们就可以在程序中,通过${driver}的方式使用已经配置好的属性了。
剩下的两种方式(基本上大多数都是用properties文件的方式配置的)都很常见,就不一一介绍了。
唯一需要说明的是,如果三种方式都配置了,那么会以哪种方式的配置为准呢?
mybatis中读取配置是有优先级的,优先级的顺序为:程序传参>配置文件>属性

2.settings
设置(settings)是mybatis中最复杂也是最重要的配置,因为其可以改变mybatis的默认的行为。由于settings的配置较多,我这里只列举几种最常见的配置以及相关说明:
cacheEnabled :设置所有映射其中配置缓存的全局开关
lazyLoadingEnabled:延迟加载的全局开关,开启时,所有关联的对象都会延迟加载。
logPrefix:指定mybatis日志增加的前缀名称
jdbcTypeForNull:当没有为参数提供特定类型时,为空值的情况下指定jdbc的类型
3.别名
typeAlias是一个指定的名称,为的是解决当我们遇到的全类限定名称过长的问题。mybatis里面的别名分为自定义和系统级定义的两种,并且不区分大小写,mybatis别名实例是在解析配置时生成的,然后长期保存在configuration对象中。
自定义别名的实例:

<typeAliases>
    <typeAlias alias="role" type="com.demo.user">
</typeAliases>
<typeAliases>
    <package name="com.demo.packagename">
</typeAliases>

4.typeHandler
mybatis在预处理阶段设置一个参数时,或者从返回的结果集中取出一个值时,都会用到对应的typeHandler处理器。和别名一样,typeHandler也分为自定义和系统定义的两种。
typeHandler常用的配置为Java类型和Jdbc类型,分别对应应用类型和数据库类型。当设置一个参数时,会将java类型转为对应的jdbc类型,从结果集中取值时会把jdbc类型转换为对应的java类型。通常情况下mybatis系统定义的typehandler已经能够处理绝大多数的场景了。但是也不能排除我们想定制化的参数处理。

ps:有点晚而且头疼,不想打字了,明天再继续介绍自定义的typeHandler处理器的使用方法以及其他的属性。

最后我有一件很重要的事情要和各位说::据说,看到这篇博文的兄弟点个赞,每天都能换女朋友,一个比一个漂亮的那种;看到这边博文的姐妹点个赞,每天都能换老公,一个比一个帅气的那种。让你们体验什么是”货比货要扔”的赶脚!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值