MyBatis-00-Mybatis核心配置文件

发布于:2022-12-12 ⋅ 阅读:(1145) ⋅ 点赞:(1)

目录

一.核心配置文件介绍

二.配置文件结构

1.主要元素

2.文件结构目录

3. configuration根节点

4.配置properties元素的两种方式

4.1通过指定外部属性文件,如:database.properties

4.2直接配置property子节点

4.3若两种方式同时都用了,哪种方式生效?

5.settings元素

6.typeAliases元素

7.environments元素 

7.1两种方式

7.2-environments元素

7.3-environments元素

7.4-environments元素

8.mappers元素 

方式一:使用类资源路径获取资源

方式二:使用Mapper接口的包路径 

三.完整的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-入门


网站公告

今日签到

点亮在社区的每一天
去签到