目录
4.1通过指定外部属性文件,如:database.properties
三.完整的Mybatis-config.xml核心配置文件代码
一.核心配置文件介绍
MyBatis的核心配置文件配置了MyBatis的一些全局信息,包含数据库连接信息和MyBatis运行时所需的各种特性,以及设置和影响MyBatis行为的一些属性。
二.配置文件结构
1.主要元素
configuration 根节点
properties 描述一些外部的、可替代的属性
settings 修改MyBatis的运行时行为
typeAliases 为Java类型指定一个别名
typeHandlers 类型处理器
objectFactory 对象工厂
plugins 插件
environments 环境配置
environment 一组环境配置
transactionManager 事务管理器
dataSource 数据源
databaseIdProvider 启用多数据库厂商支持
mappers 映射器
注意元素节点的顺序!
mybatis-config.xml 文件中的元素节点是有一定顺序的,节点位置必须按以上位置排序,否则会编译错误。
2.文件结构目录
<?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><!-- 根节点 -->
<properties /><!-- 描述一些外部的、可替代的属性 -->
<settings /><!-- 修改MyBatis的运行时行为 -->
<typeAliases /><!-- 为Java类型指定一个别名 -->
<typeHandlers /><!-- 类型处理器 -->
<objectFactory /><!-- 对象工厂 -->
<plugins /><!-- 插件 -->
<environments><!-- 环境配置 -->
<environment><!-- 一组环境配置 -->
<transactionManager /><!-- 事务管理器 -->
<dataSource /><!-- 数据源 -->
</environment>
</environments>
<databaseIdProvider /><!-- 启用多数据库厂商支持 -->
<mappers /><!-- 映射器 -->
</configuration>
3. configuration根节点
configuration 元素是整个 XML 配置文件的根节点,其角色就相当于是 MyBatis 的总管,MyBatis 所有的配置信息都会存放在它里面。
4.配置properties元素的两种方式
4.1通过指定外部属性文件,如:database.properties
<properties resource="database.properties" />
4.2直接配置property子节点
<properties>
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/……" />
<property name="user" value="root" />
<property name="password" value="root" />
</properties>
4.3若两种方式同时都用了,哪种方式生效?
<properties resource="database.properties">
<property name="driver" value="com.mysql.cj.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/……" />
<property name="user" value="root" />
<property name="password" value="root" />
</properties>
resource属性值会覆盖property子节点配置的同名属性值
5.settings元素
用来修改MyBatis运行时的行为方式
主要是MyBatis的一些全局配置属性的设置
设置项 |
描述 |
允许值 默认值 |
默认值 |
cacheEnabled |
对在此配置文件下的所有cache 进行全局性开/关设置 |
true | false true |
true |
lazyLoadingEnabled |
全局性设置懒加载。如果设为false,则所有相关联的都会被初始化加载 |
true | false true |
true |
autoMappingBehavior |
MyBatis自动映射匹配级别 |
NONE | PARTIAL | PARTIAL FULL |
PARTIAL |
logImpl |
指定MyBatis应使用的日志记录实现。如果不设置将自动发现日志记录实现 |
SLF4J | LOG4J | 无 LOG4J2 | …… |
无 |
6.typeAliases元素
类型别名
在SQL映射文件中简化冗长的Java类名
<typeAliases>
<typeAlias alias="SysUser" type="cn.cvs.pojo.SysUser"/>
</typeAliases>
<typeAliases>
<package name ="cn.cvs.pojo" />
//默认名称:指定包下JavaBean的非限定类名
</typeAliases>
7.environments元素
7.1两种方式
1.可以通过environment子元素节点配置MyBatis的多套运行环境
2.必须通过default属性指定其中一个为默认运行环境
7.2-environments元素
<environments default="development">//默认的运行环境 ID
<environment id="development">//运行环境 ID
<transactionManager type="JDBC"/>//事务管理器配置
<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>
<environment id="test">//运行环境ID
……
</environment>
</environments>
7.3-environments元素
事务管理器transactionManager
语法:
<transactionManager type="[ JDBC | MANAGED ]" />
//JDBC MANAGED(托管)
7.4-environments元素
dataSource
7.4.1dataSource元素使用基本的JDBC数据源接口来配置JDBC连接对象的资源
7.4.2有三种内建的数据源类型
语法:
<dataSource type="[UNPOOLED|POOLED|JNDI]" />
示例:
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
8.mappers元素
SQL映射文件定义SQL语句映射
须在配置中引用SQL映射文件
方式一:使用类资源路径获取资源
<mappers>
<mapper resource="cn/cvs/dao/sysUser/SysUserMapper.xml" />
……
</mappers>
方式二:使用Mapper接口的包路径
<!-- 要求SQL映射文件与Mapper接口位于同一包路径下,并且名称相同 -->
<mappers>
<package name="cn.cvs.dao" />
</mappers>
三.完整的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>
<!-- 引入数据库连接配置文件jdbc.properties-->
<properties resource="jdbc.properties"></properties>
<!-- setting中的logImpl设置为STDOUT_LOGGING是为了日志输出mybatis生产的sql语句-->
<!-- setting中的mapUnderscoreToCamelCase设置为true是为了能将数据库表中字段的值映射到实体类驼峰式映射上-->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 通过typeAliases标签来给自定义类型起别名-->
<typeAliases>
<!-- 一个一个类取别名,效率太低,不推荐-->
<typeAlias type="com.wsay.pojo.Product" alias="product"/>
<!-- 通过package的方式一起起别名
别名为类名的首字母小写 -->
<package name="com.wsay.pojo"/>
</typeAliases>
<!-- 可以配置多个环境来满足不同场景下的使用,
default用来指出使用哪个配置的环境使用-->
<environments default="test">
<environment id="test">
<!--
transactionManager用来配置事务管理
type中使用JDBC代表mybatis进行事务管理
type中使用Manager代表mybatis不进行事务管理
如果与spring进行整合的情况下,type中可以使用Manager选项
让spring来参与事务管理
-->
<transactionManager type="JDBC"></transactionManager>
<!--
dataSource用来配置数据库连接
UNPOOLED代表底层不使用连接池,每次都需要创建一个新的连接
用完后再释放该连接;会有一些基础属性设置:
driver url username password
defaultTransactionIsolationLevel(默认连接事务隔离级别)
defaultNetworkTimeout(连接超时时间)
POOLED代表使用连接池,每次从连接池中获取连接
当资源关闭时将连接返回连接池;
在正式项目中仍然会切换成第三方的连接池,例如C3p0;
-->
<dataSource type="POOLED">
<property name="url" value="${url}"/>
<property name="driver" value="${driverClass}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<!-- 根据需要的生产或测试环境配置不同的数据库进行数据切换-->
<!-- <environment id="produce">-->
<!-- <transactionManager type=""></transactionManager>-->
<!-- <dataSource type=""></dataSource>-->
<!-- </environment>-->
</environments>
<!-- 加载dao层对应的xml配置文件-->
<mappers>
<!-- <mapper resource="com/wsay/dao/ProductMapper.xml"/>-->
<!-- 如果使用package需要注意一定要使用接口-->
<!-- 且接口的命名一定要和对应mapper的命名一致-->
<package name="com.wsay.dao"/>
</mappers>
</configuration>
四.总结
以上就是完整的Mybatis-config.xml核心配置文件代码 下一篇博文:MyBatis-01-入门
下一篇博文地址:MyBatis-01-入门