美文网首页
MyBatis学习笔记-03核心配置文件

MyBatis学习笔记-03核心配置文件

作者: 回笼觉觉猪 | 来源:发表于2021-01-15 00:03 被阅读0次

    续上一篇MyBatis学习笔记-02映射配置文件,上一篇解释了映射配置文件的内容,这次我们一起学习核心配置文件sqlMapConfig.xml。
    本文涉及内容主要来自与本人学习《拉勾教育-大数据高薪训练营》课程的记录和总结。

    1.4 核心配置文件概述

    核心配置文件中,主要包含约束头和根标签。MyBatis的配置文件包含了MyBatis行为的设置和属性信息。

    DTD约束头

    <?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根标签

    <configuration>
        具体内容省略,后面会再描述... ...
    </configuration>
    

    其中,configuration根标签的顶层结构如下

    • configuration(配置)
      • properties(属性)
      • settings(设置)
      • typeAliases(类型别名)
      • typeHandlers(类型处理器)
      • objectFactory(对象工厂)
      • plugins(插件)
      • environments(环境配置)
        • environment(环境变量)
          • transactionManager(事务管理器)
          • dataSource(数据源)
      • databaseIdProvider(数据库厂商标识)
      • mappers(映射器)

    1.4.1 核心配置解析-environments

    继上一章,我们的配置文件中environments配置文件信息如下

     <!--    defalut指定默认的环境名称    -->
    <environments default="mysql"> 
            <!--    当前环境的名称ID    -->
            <environment id="mysql">
                <!--   执行事务管理器类型是JDBC     -->
                <transactionManager type="JDBC"/>
                <!--   指定当前数据源类型是连接池     -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql://IP:port/mybatis_db"/>
                    <property name="username" value="数据库的用户名"/>
                    <property name="password" value="数据库的密码"/>
                </dataSource>
            </environment>
        </environments>
    
    1. 事务管理器transactionManager类型有两种
      • JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
      • MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为。
    2. 数据源dataSource的类型有三种
      • UNPOOLED– 这个数据源的实现会每次请求时打开和关闭连接。
      • POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。
      • JNDI – 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。

    1.4.2 核心配置解析-properties

    在使用properties之前,我们需要调整一下我们配置文件的方法。

    在resources目录下新建一个jdbc.properties文件

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://IP:port/mybatis_db
    jdbc.username=root
    jdbc.password=123456
    

    修改后的核心配置文件如下:

    <?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 resource="jdbc.properties"></properties>
        <!--    defalut指定默认的环境名称    -->
        <environments default="mysql">
            <!--    当前环境的名称ID    -->
            <environment id="mysql">
                <!--   执行事务管理器类型是JDBC     -->
                <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>
        <mappers>
            <mapper resource="UserMapper.xml"/>
        </mappers>
    </configuration>
    

    需要注意的是,configuration下面的元素是需要严格遵守1.4里面提到的configuration根标签的顶层结构的顺序。

    1.4.3 核心配置解析-typeAliases

    类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。

    MyBatis为我们提供了一些常用的别名

    别名 映射的类型
    _byte byte
    _long long
    _short short
    _int int
    _integer int
    _double double
    _float float
    _boolean boolean
    string String
    byte Byte
    long Long
    short Short
    int Integer
    integer Integer
    double Double
    float Float
    boolean Boolean
    date Date
    decimal BigDecimal
    bigdecimal BigDecimal
    object Object
    map Map
    hashmap HashMap
    list List
    arraylist ArrayList
    collection Collection
    iterator Iterator

    为我们自己的类起别名的方法

    <!--  设置别名  -->
        <typeAliases>
            <!-- 方式1:为单个实体起别名 -->
            <typeAlias type="com.lagou.domain.User" alias="user"></typeAlias>
            <!-- 方式2:批量起别名,别名就是类名,而且不区分大小写-->
            <package name="com.lagou.domain"/>
        </typeAliases>
    

    1.4.4 核心配置解析-mappes

    mappers的配置,其实就是告诉MyBatis 去哪里找映射文件,剩下的细节就应该是每个 SQL 映射文件了。

    <!-- 使用相对于类路径的资源引用 -->
    <mappers>
      <mapper resource="UserMapper.xml"/>
    </mappers>
    
    <!-- 使用完全限定资源定位符(URL) -->
    <mappers>
      <mapper url="file:///D:/work/mybatis_quickstart/src/main/resources/UserMapper.xml"/>
    </mappers>
    
    <!-- 使用映射器接口实现类的完全限定类名 -->
    <mappers>
      <mapper class="org.mybatis.builder.AuthorMapper"/>
    </mappers>
    
    <!-- 将包内的映射器接口实现全部注册为映射器 -->
    <mappers>
      <package name="org.mybatis.builder"/>
    </mappers>
    

    MyBatis学习笔记系列
    MyBatis学习笔记-01MyBatis入门
    MyBatis学习笔记-02映射配置文件
    MyBatis学习笔记-03核心配置文件

    相关文章

      网友评论

          本文标题:MyBatis学习笔记-03核心配置文件

          本文链接:https://www.haomeiwen.com/subject/cnmbaktx.html