一、M y B a t i s 配 置 文 件
MyBatis配置文件的功能:构建SqlSessionFactory的依据
MyBatis配置文件的意义:MyBatis最为核心的内容,对MyBatis的使用影响很大。
MyBatis配置文件注意事项:配置文件的层次顺序不能颠倒,一旦颠倒会出现异常。
1.什么是MyBatis配置文件

2.配置文件的层级结构

二、 < c o n f i g u r a t i o n > 元素
功能:
标识配置文件的起始,所有配置信息都存放在这里。

三、< e n v i r o m e n t s > 元 素
功能
配置数据库环境信息,注册数据源, 配置数据库事务。

四、 <environments>元素的结构
1.default属性:默认使用的数据库环境

2. <environment> 单个数据库环境信息的标识

2.1 <transactionManager> 配置数据库事务

**<transactionManager>**数据库事务(的type属性)
|---------|------------------------------------------------------------------------------------|
| JDBC | 使用 JDBC 的事务管理机制,就 是利用 java.sql.Connection 对 象完成对事务的提交; |
| MANAGED | 使用 MANAGED 的事务管理机 制,这种机制 MyBatis 自身不 会去实现事务管理,而是让程序 的容器(JBOSS,WebLogic)来 实现对事务的管理; |
| 自定义 | 由使用者自定义数据库事务的管 理方式,适用于特殊应用。 |
3.<dataSource> 配置环境信息中数据源连接的信息。

**<dataSource>**数据源(的type属性)
|----------|----------|
| UNPOOLED | 非连接池的数据源 |
| POOLED | 连接池的数据源 |
| JNDI | JNDI的数据源 |
| 自定义数据源 | 其他类型数据源 |
4.<property> 配置环境信息的属性
五、< p r o p e r t i e s > 元 素
1. <properties>元素的功能
配置属性的元素,可以在配置文件的上下文中使用 该属性。
2. <properties>元素的结构
2.1properties 配置文件
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/schoolp?serverTimezone=GMT
jdbc.username=root
jdbc.password=123456
2.2程序参数传递
properties.setProperty("driver",decode( properties.get( " driver")));
properties.setProperty("url", decode(properties.get("ur1")));
properties.setProperty( " username",decode( properties.get( "username" )));
properties.setProperty(" password", decode(properties.get(" password")));
2.3 property 子元素
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
3. <properties>元素外部文件配置



4.使用建议
- 不要使用混合方式,以避免管理混乱
- 首选的方式是 Properties 文件方式
- 如存在加密或者安全访问的问题,使用第二种方式,为日后统一管理提供方便
六、< t y p e A l i a s e s > 元 素
1.< typeAliases > 元素的功能
Mybatis内部支持的别名:

2.< typeAliases > 元素的功能
我们使用Mybatis 需要将查询的虚拟表映射为java中的实体类的对象,就需 要让Mybatis知道这些我们自定义的"类型"。


3.< typeAliases > 元素的功能
在主配置文件中进行配置

在sqlMapper.xml 中可以使用类名

七、< m a p p e r s > 元素
<mappers>元素的功能:用来在MyBatis初始化的时候引入映射器。
**<mappers>**层次结构:
相对路径引入映射器:

用文件定位符引入映射器:

注册指定包下的所有mapper接口:

注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同 一个目录中。
总结:
• MyBatis 配置文件的功能
• 构建 SqlSessionFactory 的依据,对整个MyBatis体系影响深远;
• <properties>元素的功能
• 配置属性的元素,可以在配置文件的上下文中使用该属性;
•<enviroments> 元素的功能
• 配置环境信息,注册数据源,配置数据库事务;
• <mappers>元素的功能
• 用来在MyBatis初始化的时候引入映射器。