MyBatis的基本要素---核心配置文件
1.mybatis-config.xml文件结构
mybatis-config.xml文件需配置一些基本元素,需要注意的是,该配置文件的元素节点是有先后顺序的,其层次结构如下图所示:
这里放图片
从上图可知,configuration元素是整个XML配置文件的根节点,其角色就相当于是MyBatis的总管.mybatis所有的配置信息都会存在它里面.MyBatis还提供了设置这些配置信息的方法.Configuration可从配置文件里获取属性值,也可以通过程序直接设置.Configuration可供配置的内容如下:
1.Properties元素
properties元素描述的都是外部化,可替代的属性.那么这些属性的获取可以通过以下2个方法实现.
(1)可通过外部指定样式,即配置在典型的Java属性配置文件中(如database.properties),并使用这些属性对配置项实现动态配置,代码如下:
<1>database.properties;
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/smbms?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
user=root
password=root
<2>mybatis-config.xml内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 引入database.properties文件 -->
<properties resource="database.properties"/>
.........
<!-- POOLED:mybatis自带的数据源,JNDI:基于Tomcat的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
</configuration>
在上述代码中,driver,url,username,password属性将会包含进来的database.properties文件中的值来替换.
(2)直接配置为xml,并使用这些属性对配置项实现动态配置.代码如下:
<!--properties元素中直接配置property属性-->
<properties>
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/smbms?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8"/>
<property name="user" value="root"/>
<property name="password" value="root"/>
</properties>
.....
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
在上述代码中,driver,url,username,password将会由properties元素中设置的值来替换;
如果两种方式同时使用了,resource中同名属性将会覆盖property子节点的值
结论:resource属性值的优先级高于property子节点配置的值
2.settings元素
setting元素的作用是设置一些非常重要的设置选项,用于设置和改变MyBatis运行中的行为常用的配置如下表所示:
3.typeAliases元素
typeAliases元素的作用是配置类型别名,通过与mybatis的SQL映射文件相关联,减少输入多余的完整类名,以简化操作.
<typeAliases>
<!-- 这里给实体类取别名,方便在mapper配置文件中使用 -->
<typeAlias type="branches" alias="pojo.Branches"/>
</typeAliases>
以上这种写法的弊端在于如果一个项目中有多个POJO的时候,需要一一进行配置,所以有更加简化的写法,就是通过package的name属性直接指定包名,MyBatis会自动扫描指定包下的JavaBean并默认设置一个别名,默认名称为JavaBean的非限定类名,具体配置如下面代码所示
<typeAliases>
<package name="pojo.Branches"/>
</typeAliases>
另外,对于基础数据类型等MyBatis已经为许多常见的Java类型内建立了相应的类型别名,一般都是与其他映射类型一致,并且它们都是大小写不敏感,比如映射的类型int,Boolean,String.Integer等,它们的别名就是int,Boolean,String,Integer.关于这部分内容,会在后续章节中详细介绍;
4.environments元素
MyBatis可以配置多套运行环境,比如开发环境,测试环境,生产环境等,我们可以灵活选择不同的配置,从而将SQL映射应用到不同的数据库环境上.这些不同的运行环境,就可以通过environments元素来配置,但是不管增加几套运行环境,都必须要明确选择出当前的唯一一个运行环境.这是因为每个数据库都是对应一个SqlSessionFactory示例的,需要指明哪个运行环境将被创建,并把运行环境中设置的参数传递给SqlSessionFactoryBuilder,具体配置如下:
<environments default="development">
<environment id="development">
<!-- 配置事务管理,采用JDBC的事务管理 -->
<transactionManager type="JDBC"></transactionManager>
<!-- POOLED:mybatis自带的数据源,JNDI:基于Tomcat的数据源 -->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${pwd}"/>
</dataSource>
</environment>
</environments>
上述代码中,需要注意以下几个关键点.
(1)默认的运行ID,通过default属性来指定当前运行环境ID为development,对于环境的ID命名要确保唯一;
(2) transactionManager事务管理器,设置其类型为JDBC (MyBatis有两种事务管理类型即JDBC.MANAGED).直接使用JDBC的提交和回滚功能,依赖于从数据源获得连接来管理事务的生命周期。
(3) dataSource 元素使用标准的JDBC 数据源接口来配置JDBC连接对象的资源。MyBatis 提供了三种数据源类型(UNPOOLED. POOLED. JNDI),这里我们使用POOLED数据源类型。该类型的实现利用”池”的概念将JDBC连接对象组织起来.避免了创建新的连接实例时所必需的初始化和认证时间,是MyBatis实现的简单的数据库连接池类型.它使数据库连接可被复用,不必在每次请求时都去创建一个物理连接。 这对于高并发的Web应用是一种流行的处理方式,有利于快速响应请求。
5.mappers元素
mappers:映射器,用来定义SQL的映射语句,我们只需要告诉MyBatis去哪里找到这些SQL 句,即去哪里找相应的saL映射文件。可以使用类资源路径或者URL等,具体代码如下。
(1)使用类资源路径获取资源:
<mappers>
<mapper resource-"cn/ snbms/dao/user/UerMapper.xml"/>
mapper resource- " cn/ smbms / dao/provider/ProviderMapper .xm1"/></mappers>
(2)使用URL获取资源:
<mappers>
<mapper url="file:///E:/sqlmappers/UserMapper.xm1"/>
<mapper url="file:///E:/sqlmappers/ProviderMapper.xm1"/>
</mappers>
2.DTD文件的引入
MyBais有两种配置文件:核心配置文件(mybatis- confing xml)和SaL映射文件(mapper.xml)(关于SQL映射文件这两种配置文件都需要手动引入各自的DTD文件(mybatis -3- config.dtd和mybatis-3-mapper.dtd). 并在IDE中进行相应配置,否则在编写配置文件的时候,节点元素以及属性等不能自动联想,具体引入方法如下.
1.DTD文件的位置
将这2个DTD文件在mybatis-3.3.3.jar里,以压缩文件形式解压并打开,DTD文件的路径为mybatis-3.3.3\org\apache\ibatis\builder\xml,如下图所示:
将这2个文件复制出来,放置在一个统一的位置(如D:)方便下一步手动引入.
2.新增XML Catalog
在eclipse的工具栏中,选择"window->Preference"选项,弹出如下所示:
选择Xml Catalog,在右侧窗口中选中User Specified Entries,单击"Add"按钮,弹出如下图所示的界面,并添加相关内容
Location:单击"File System"按钮,选择DID文件位置(D:\开发工具\mybatis-3-config.dtd)或者可以选择把该DTD文件放入本项目工程中某一固定文职,单击"Workspace"按钮进行引入.Key type:Public ID(默认即可);
上一篇: Docker | 基于docker安装rabbitmq
下一篇: redis服务器配置小结
推荐阅读
-
mybatis 加载配置文件的方法(两种方式)
-
Mybatis中的config.xml配置文件详细解析
-
优化MyBatis配置文件中的配置详解
-
MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
-
优化MyBatis配置文件中的配置详解
-
Mybatis注解和配置文件命名规范所引发的问题
-
MyBatis核心SqlSessionFactory的创建
-
mybatis的配置文件(mybatis.xml)中typealiases
-
Mybatis细节处理之mapper.xml的存放,properties配置文件,类型别名以及创建log4j配置文件
-
MyBatis 配置文件以及SqlSessionFactory对象的创建