mybatis--全局配置文件

前言

上节课最后我们提到了两个重要的配置文件, 今天我们就先来讲讲mybatis的全局配置文件

这个配置文件包含了影响mybatis行为的设置和属性.文档的顶层结构如下:


properties

mybatis可以使用properties来引入外部properties配置文件的内容;
Resource:引入类路径下的资源
url:引入网络/磁盘路径下的资源
如果属性不只一个地方进行了配置,那么在properties内指定的属性会优先; 再根据resource属性下读, 再根据url指定的路径读,并覆盖已读取的同名的属性

最后读取作为方法参数传递的属性,并覆盖已读取的


Settings

Setting 包含很多重要的设置项
setting:用来设置每一个设置项 name:设置项名 value:设置项取值

比如: 是否开启自动驼峰命名规则(数据库列名A_COLUMN到aCloumn的类似映射)

<settings>
	<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

typeAliases

typeAliases 别名处理器 简省工作量,可以为我们的java类型起别名
别名不区分大小写
typeAlias:为某个java类型起别名,方便引用某个类
type:指定要起别名的全类名;默认别名就是类名的小写;

alias:指定新的别名

<typeAlias type="com.kwy.mybatis.bean.Employee" alias="emp"/>

这种就是为单独某一个起别名, 但是如果 有很多的类,那工作量也是有点大的, 所以就有了批量的方式

批量起别名
package: 为某个包下的所有类批量起别名

name: 指定包名(为当前包以及下面所有的后代包的每一类都起一个默认别名(简单类名小写))

<typeAliases>
	<package name="com.kwy.mybatis.bean"/>
</typeAliases>

还使用@Alias注解为某个类型指定新的别名

@Alias("emp")
Public class Employee{}

插件

插件是MyBatis提供的一个非常强大的机制,我们 可以通过插件来修改MyBatis的一些核心行为。插 件通过动态代理机制,可以介入四大对象的任何一个方法的执行。后面会有我会专门来介绍mybatis运行原理以及插件 

Executor   ParameterHandler  ResultSetHandler StatementHandler


Environments

Environments:环境们,mybatis可以配置多种环境,default指定某种环境,可以打到快速切换环境(有点像maven的profile了哈)
Environment:配置一个具体的环境信息
id:指定当前环境的唯一标识
 transactionManager:事务管理器和dataSource必须得有
下面来说一下transactionManager
 type:事务管理器的类型:
        jdbc 
        managed
        自定义事务管理器,实现TransactionFactory接口, type指定为全类名
DataSource:数据源;
        type: 数据源类型 UNPOOLED | POOLED| JNDI

        自定义数据源: 实现DataSourceFactory接口

databaseIdProvider

databaseIdProvider:支持多数据库厂商的
type="DB_VENDOR": VendorDatabaseIdProvider

作用就是得到数据库厂商的标识(驱动),mybatis就能根据数据库厂商标识来执行不同的sql;

<databaseIdProvider type="DB_VENDOR">
 <!--为不同的数据库厂商起别名-->
 <property name="MySQL" value="mysql"/>
 <property name="Oracle" value="oracle"/>
</databaseIdProvider>

mappers

将我们写好的sql映射文件,注册到全局配置中

如何使用呢

mappers: 将sql映射注册到全局配置中
mapper:注册一个sql映射
resource:引用类路径下的sql映射文件
Eg: mybatis/mapper/xxx.xml
url: 引用网络路径活磁盘路径下的sql映射文件
Eg: file://workspace/xxx.xml

注册接口
class: 引用接口
         1.有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下;
         2.没有sql映射文件,所有sql都是利用注解写在接口上


猜你喜欢

转载自blog.csdn.net/kwy15732621629/article/details/79675736