• 【MyBatis框架】核心配置文件讲解


    14天阅读挑战赛

    1. 引言

    在MyBatis的核心配置中,包含了很多影响MyBatis行为的重要信息,这些信息通常在一个项目中只会在一个配置文件中编写,并且编写后也不会轻易改动。虽然在实际项目中需要开发人员编写或修改的配置文件不多,但是熟悉配置文件中各个元素的功能还是十分重要的。

    2. 主要元素

    MyBatis框架的核心配置文件中,< configuration >元素是配置文件的根元素,其他元素都要在< configuration >元素内进行配置,其配置文件的主要元素如图

    在这里插入图片描述

    从图中可以看出,在MyBatis的配置文件中包含了 多个元素,这些元素在配置文件中分别发挥着不同的作用。开发人员索要熟悉的就是图中的< configuration >元素各个子元素的配置。

    这里要特别注意,< configuration >的子元素必须按照图中由上到下的顺序进行配置,否则MyBatis在解析XML文件的时候会报错

    3. 常用配置元素介绍

    3.1 < properties >

    < properties >是一个配置属性的元素,该元素常用于将内部的配置外在化,即通过外部的配置来动态的替换内部定义的属性,例如数据库的连接等属性,就可以通过配置文件进行转化。

    配置个人数据库连接配置

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/zxy_db01
    jdbc.username=root
    jdbc.pwd=zxy
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    3.2 < settings >

    < settings >元素主要用于改变MyBatis运行时的行为,例如开启二级缓存,开启延迟加载等。即使不配置< settings >元素,也可以正常运行MyBatis。但是熟悉其中的元素还是很有必要的。
    在这里插入图片描述

    其常见使用方式如下

    在这里插入图片描述

    3.3 < typeAliases >

    < typeAliases >元素用于给配置文件中的Java类型起别名。

     <typeAliases>
            
            <typeAlias alias="user" type="com.zxy.mybatis.pojo.User">typeAlias>
        typeAliases>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    当POJO类过多时,可以通过自动扫描包的形式自定义别名

     <typeAliases>
            
            <package name="com.zxy.mybatis.pojo"/>
        typeAliases>
    
    • 1
    • 2
    • 3
    • 4

    默认会以首字母小写的方式来取别名。

    除了可以使用 < typeAliases >元素自定义别名外,MyBatis框架还默认为许多常见的Java类型提供了相应地类型别名

    在这里插入图片描述

    3.4 < typeHandlers >

    MyBatis在预处理语句中设置一个参数或者从结果集中取出一个值时,都会用其框架内部注册的typeHandler(类型处理器)进行相关处理。typeHandler的作用就是将预处理语句中传入的参数从javaType(java类型)转换为dbcType(JDBC类型),或者从数据库去除结果时将jdbcType转换成javaType

    在这里插入图片描述

    具体使用方式如下

    1. 注册一个类的类型处理器
        <typeHandlers>
            <typeHandler handler="com.zxy.type。Hander"/>
        typeHandlers>
    
    • 1
    • 2
    • 3
    1. 注册一个包中所有元素的类型处理器
        <typeHandlers>
            <package name="com.zxy.type"/>
        typeHandlers>
    
    • 1
    • 2
    • 3
    3.5 < plugins >

    < plugins >元素的作用是配置用户所开发的插件

    3.6 < environments >

    在配置文件中,< environments >用于对环境进行配置,MyBatis的环境配置实际上就是数据源的配置,我们可以通过对< environments >元素配置多种数据源,即配置多种数据库。

     <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    
                    <property name="driver" value="${jdbc.driver}"/>
                    
                    <property name="url" value="${jdbc.url}"/>
                    
                    <property name="username" value="${jdbc.username}"/>
                    
                    <property name="password" value="${jdbc.password}"/>
                dataSource>
            environment>
    environments>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在MyBatis中,可以配置两种类型的事务管理器,分别是JDBCMANAGED,关于这两个事务管理器的描述如下:

    1. JDBC:此配置使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事物的作用域。
    2. MANAGED:此配置从来不提交或回滚一个连接,而是让容器来管理事物的整个生命周期。在默认情况下,它会关闭连接,但一些容器并不希望这样,为此可以将closeConnection的属性设置为false来阻止它的默认行为。
    3.7 < mappers >

    在配置文件中,< mappers >元素用于指定MyBatis映射文件的位置,一般可以使用如下4种方式引入映射器文件。

    1. 类路径引入

      <mappers>
              <mapper resource="com/zxy/mybatis/mapper/UserMapper.xml"/>
          mappers>
      
      • 1
      • 2
      • 3
    2. 本地文件路径引入

      <mappers>
              <mapper url="file:///D:/com/zxy/mapper/UserMapper.xml"/>
          mappers>
      
      • 1
      • 2
      • 3
    3. 使用接口类引入

      <mappers>
              <mapper class="com.zxy.mybatis.mapper.UserMapper.xml"/>
          mappers>
      
      • 1
      • 2
      • 3
    4. 使用包名引入

      <mappers>
              <mapper name="com.zxy.mybatis.mapper"/>
          mappers>
      
      • 1
      • 2
      • 3

    4. 结语

    MyBatis的核心配置文件是十分重要的,关系着框架是否能正常运转,应该多熟悉结构,比如本人曾经写错了 < mappers >的配置导致映射文件找不到,十分头痛。

  • 相关阅读:
    在pycharm中通过ctrl进入调用函数,如何返回到原函数
    RIoTBoard开发板系列笔记(十三)—— yocto SDK安装与使用
    中科大郑烇、杨坚老师《计算机网络-自顶向下方法》课程 第2章 应用层笔记
    2022烟台海洋牧场优势产品宣传推介会在杭州成功举办
    mapbox尝鲜值之云图动画
    【Python面向对象进阶①】——给对象动态的增加属性和方法
    如何在 CentOS 8 上安装 OpenCV?
    [第五空间2019 决赛]PWN5
    自然语言处理综述
    软考中级(系统集成项目管理工程师)高频考点
  • 原文地址:https://blog.csdn.net/m0_64102491/article/details/127393346