您的位置:首页 > 其它

Mybatis原理解析之-配置说明

2017-12-26 21:16 399 查看
这一章,我们介绍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处理器的使用方法以及其他的属性。

最后我有一件很重要的事情要和各位说::据说,看到这篇博文的兄弟点个赞,每天都能换女朋友,一个比一个漂亮的那种;看到这边博文的姐妹点个赞,每天都能换老公,一个比一个帅气的那种。让你们体验什么是”货比货要扔”的赶脚!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis