MyBatis的核心配置文件---configuration.xml

概述

  该文件配置了mybatis的一些全局信息,包含数据库连接信息和mybatis运行时所需的各种特性,以及设置和影响mybatis行为的一些属性。

配置文件的结构

  configuration元素是整个xml配置文件的根节点,相当于是MyBatis的总管,MyBatis所有的配置信息都会存放在这里面。MyBatis提供了设置这些配置信息的方法。configuration可从配置文件里获取属性值,也可以通过程序直接设置。

  1. configuration 配置
    1. properties 可以配置在java属性配置文件中
    2. settings 修改MyBatis在运行时的行为方式
    3. typeAliases 为Java类型命名一个别名
    4. typeHandlers 类型处理器
    5. objectFactory 对象工厂
    6. plugins 插件
    7. environments 环境
      1. environment 环境变量
        1. transactionManager 事务管理器
        2. dataSource 数据源
    8. mappers 映射器

properties元素

  它是一种外部化、可替代的属性。有如下两种方式进行实现。

  1. 外部指定的方式
    1. 创建一个.properties文件
    2. 再在configuration.xml文件中引入

database.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/food?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
username=root
password=123456

configuration.xml部分内容

	<!--  可以配置在java属性配置文件中  -->
    <!--  引入database.properties  -->
    <properties resource="database.properties"/>
    ......
    <!-- 配置数据库(连接池) -->
    <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </dataSource>
  1. 直接配置xml,并使用这些属性对配置项实现动态配置
	<!--  可以配置在java属性配置文件中  -->
    <properties>
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="等号左边" value="等号右边"/>
        ...
    </properties>
    ......
    <!-- 配置数据库(连接池) -->
    <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
    </dataSource>
  1. 然后在两个地方都进行了配置。第一种方法的优先级比第二种方法高

settings元素

  设置一些非常重要的选项,用于设置和改变MyBatis运行中的行为

设置项描述允许值默认值
cacheEnabled对在此配置文件下的所有cache进行全局性开/关设置true/falsetrue
lazyLoadingEnabled全局性设置懒加载。
如果设置为false,则所有相关联的设置都会被初始化加载
true/falsetrue
autoMappingBehaviorMyBatis对于resultMap自动映射的匹配级别NONE/PARTIAL/FULLPARTIAL

typeAliases元素

  配置类型别名,通过与MyBatis的SQL映射文件相关联,减少输入多余的完整类名,以简化操作。

<!--  给实体类起别名,方便在mapper配置文件中使用  -->
    <typeAliases>
        <typeAlias alias="别名" type="全限定类名"/>
        <typeAlias alias="别名" type="全限定类名1"/>
        <typeAlias alias="别名" type="全限定类名2"/>
<!--    当有多个别名非常不方便,这个时候。可以直接指定包名    -->
        <package name="包名"/>
    </typeAliases>

environments元素

  配置多套运行环境,如开发环境、测试环境、生产环境等,我们可以灵活选择不同的配置,从而将SQL映射到不同的数据库环境上。不同的运行环境可以通过environments元素来配置,到那时不管增加几套运行环境,都必须要明确选择出当前唯一的一个运行环境。这是因为每个数据库都对应一个sqlsessiibfactory实例,需要指明哪个运行环境将被创建,并把运行环境中设置的参数传递给sqlsessionfactorybuilder。

<!-- 配置环境 -->
<!-- 默认的运行环境ID。切记要唯一 -->
    <environments default="mysql">
        <!-- 配置mysql的环境 -->
        <environment id="mysql">
            <!-- 配置事务的类型 -->
            <!-- 二选一:JDBC(一般使用它) 和 MANAGED -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据库(连接池)对应上面properties元素 -->
            <!-- 三选一:UNPOOLED、POOLED(一般使用它。他具有池的概念,用完之后会回收)、JNDI -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

mappers元素

  用来定义SQL的映射语句,我们只需要告诉MyBatis去哪里找到这些SQL语句,即去哪里找相应的SQL映射文件,可以使用类资源路径或者URL。

  1. 使用类资源路径获取资源
	<mappers>
        <mapper resource="dao/UserDao.xml" />
    </mappers>
  1. 使用URL获取资源
	<mappers>
        <mapper url="file:///xml具体路径" />
    </mappers>

整合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>

    <!--  可以配置在java属性配置文件中  -->
    <!--  引入database.properties  -->
    <properties resource="database.properties"/>


<!--  起别名  -->
    <typeAliases>
        <typeAlias alias="别名" type="全限定类名"/>
        <typeAlias alias="别名" type="全限定类名1"/>
        <typeAlias alias="别名" type="全限定类名2"/>
<!--    当有多个别名非常不方便,这个时候。可以直接指定包名    -->
        <package name="包名"/>
    </typeAliases>

    <!-- 配置环境 -->
    <environments default="mysql">
        <!-- 配置mysql的环境 -->
        <environment id="mysql">
            <!-- 配置事务的类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据库(连接池) -->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
    <mappers>
        <mapper resource="dao/UserDao.xml" />
        <!--        <package name="dao"/>-->
    </mappers>

</configuration>

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值