Mybatis原理解析之-配置说明
2017-12-26 21:16
399 查看
这一章,我们介绍Mybatis的各种配置。
首先我们先来看一下mybatis配置文件的层次结构。
以上就是mybatis的所有配置元素,注意,是配置元素。注意!!这些配置的顺序是不能随便更改的,不然解析会出问题。
下面逐一来介绍这些配置的功能和作用:
1.properties
属性配置。即允许在配置文件的上下文的使用的配置。mybatis提供三种配置方式,分别是:
property子元素、properties配置文件、程序传参
首先来看一个property子元素的实例:
这样我们就可以在程序中,通过${driver}的方式使用已经配置好的属性了。
剩下的两种方式(基本上大多数都是用properties文件的方式配置的)都很常见,就不一一介绍了。
唯一需要说明的是,如果三种方式都配置了,那么会以哪种方式的配置为准呢?
mybatis中读取配置是有优先级的,优先级的顺序为:程序传参>配置文件>属性
2.settings
设置(settings)是mybatis中最复杂也是最重要的配置,因为其可以改变mybatis的默认的行为。由于settings的配置较多,我这里只列举几种最常见的配置以及相关说明:
cacheEnabled :设置所有映射其中配置缓存的全局开关
lazyLoadingEnabled:延迟加载的全局开关,开启时,所有关联的对象都会延迟加载。
logPrefix:指定mybatis日志增加的前缀名称
jdbcTypeForNull:当没有为参数提供特定类型时,为空值的情况下指定jdbc的类型
3.别名
typeAlias是一个指定的名称,为的是解决当我们遇到的全类限定名称过长的问题。mybatis里面的别名分为自定义和系统级定义的两种,并且不区分大小写,mybatis别名实例是在解析配置时生成的,然后长期保存在configuration对象中。
自定义别名的实例:
4.typeHandler
mybatis在预处理阶段设置一个参数时,或者从返回的结果集中取出一个值时,都会用到对应的typeHandler处理器。和别名一样,typeHandler也分为自定义和系统定义的两种。
typeHandler常用的配置为Java类型和Jdbc类型,分别对应应用类型和数据库类型。当设置一个参数时,会将java类型转为对应的jdbc类型,从结果集中取值时会把jdbc类型转换为对应的java类型。通常情况下mybatis系统定义的typehandler已经能够处理绝大多数的场景了。但是也不能排除我们想定制化的参数处理。
ps:有点晚而且头疼,不想打字了,明天再继续介绍自定义的typeHandler处理器的使用方法以及其他的属性。
最后我有一件很重要的事情要和各位说::据说,看到这篇博文的兄弟点个赞,每天都能换女朋友,一个比一个漂亮的那种;看到这边博文的姐妹点个赞,每天都能换老公,一个比一个帅气的那种。让你们体验什么是”货比货要扔”的赶脚!!!
首先我们先来看一下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原理学习3:Mybatis的初始化(配置文件的读取和解析)
- Java的MyBatis框架中Mapper映射配置的使用及原理解析
- mybatis原理解析---配置文件读取及SqlSessionFactory构建
- MyBatis原理--配置解析
- MyBatis原理分析之三:初始化(配置文件读取和解析)
- Java的MyBatis框架中Mapper映射配置的使用及原理解析
- MyBatis学习(二):解析MyBatis配置文件的写法和使用原理
- Java的MyBatis框架中Mapper映射配置的使用及原理解析
- 【mybatis源码分析】原理分析之三:初始化(配置文件读取和解析)
- SpringMVC框架学习(1)--执行原理 及 xml注解配置说明
- 【MyBatis源码分析】plugins解析属性配置元素详述
- Mybatis使用及原理解析
- Mybatis配置和接口映射原理
- mybatis-config配置setting说明
- Tomcat中详细配置数据源及其原理解析
- mybatis底层源码分析之--配置文件读取和解析
- Mybatis3源码分析(三):解析mapper的xml配置文件
- mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
- 【MyBatis源码分析】TypeHandler解析属性配置元素详述及相关枚举使用高级进阶
- mybatis源码解析-启动配置&使用spring启动配置(一)