(自我笔记)Mybatis XML重要部分配置分析

2023-05-16

录🤺

  • 🕊XML配置前言
  • 🕊Properties属性
    • 🕊第一种: Java 属性文件中配置
    • 🕊第二种:在 properties 元素的子元素中设置
    • 🕊优先级
  • 🕊类型别名(typeAliases)
    • 🕊方式一:typeAlias
    • 🕊方式二:使用package
      • 🕊使用注解
    • 🕊适用场景和注意事项
  • 🕊配置环境
    • 🕊事务管理器(transactionManager)
    • 🕊数据源(dataSource)
  • 🕊映射器Mappers

🕊XML配置前言

MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息。
在mybatis中配置信息是存在先后顺序
具体顺序:
在这里插入图片描述

🕊Properties属性

这些属性可以在外部进行配置,并可以进行动态替换。你既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置。

在与mybatis-config.xml配置文件同级目录下建一个db.properties

🕊第一种: Java 属性文件中配置

🔺db.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username=root
password=123456

🔺mybatis-config.xml

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--核心配置文件-->
<configuration>
    <properties resource="db.properties"></properties>

    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    <typeAliases>
        <package name="com.xmonster.pojo"/>
    </typeAliases>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <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>
</configuration>

🕊第二种:在 properties 元素的子元素中设置

🔺db.properties

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
#注释以下两个属性
#username=root
#password=123456

🔺mybatis-config.xml

<!--    引入外部配置文件-->
    <properties resource="db.properties">
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </properties>
<!--    调用-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <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>

🕊优先级

如果两个文件有同一个字段,优先使用外部配置文件,而且外部配置文件错了,里面对也没有用

🕊类型别名(typeAliases)

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

🕊方式一:typeAlias

特点:可以DIY别名
🔺mybatis-config.xml

    <typeAliases>
        <typeAlias type="com.xmonster.pojo.User" alias="User"></typeAlias>
    </typeAliases>

🔺UserMapper.xml

    <select id="getUserList" resultType="User">
        select * from mybatis.user
    </select>

🕊方式二:使用package

指定一个包名,Myabtis会在包名下面搜索需要的java bean
它的默认名就为这个类的类名首字母小写

    <typeAliases>
<!--        <typeAlias type="com.xmonster.pojo.User" alias="User"></typeAlias>-->
        <package name="com.xmonster.pojo"/>
    </typeAliases>

🕊使用注解

在这里插入图片描述
🔺UserMapper.xml

    <select id="getUserList" resultType="xmonster">
        select * from mybatis.user
    </select>

🕊适用场景和注意事项

  • 当对象比较少的时候选择第一种
  • 当对象比较多的时候选择第二种
  • 第一种可以DIY别名;第二种则不可,若想指定,可以使用注解
  • 一般情况下,使用了第一种情况,我们就用首字母大写,使用了第二种就是首字母小写,这样方便我们知道使用了哪一种方式

🕊配置环境

🌐MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者想在具有相同 Schema 的多个生产数据库中使用相同的 SQL 映射。还有许多类似的使用场景。

不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
环境切换:
直接修改< environments default=“development”>里default里的值即可

🕊事务管理器(transactionManager)

🌐在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):
🔺JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。(默认选择这个)
🔺MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望连接被关闭(老一辈的EGB),因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为。
🔺如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。

🕊数据源(dataSource)

🌐dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。
有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]")
数据库“池子”概念回顾:就是用完可以回收,让web响应更加快
🔺UNPOOLED– 这个数据源的实现会每次请求时打开和关闭连接。虽然有点慢,但对那些数据库连接可用性要求不高的简单应用程序来说,是一个很好的选择。 性能表现则依赖于使用的数据库,对某些数据库来说,使用连接池并不重要,这个配置就很适合这种情形。
🔺POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。 这种处理方式很流行,能使并发 Web 应用快速响应请求。(默认选择这个)
🔺JNDI – 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。

🕊映射器Mappers

方式一:找到他的完全限定名即可,使用相对于类路径的资源引用

<!-- 使用相对于类路径的资源引用 -->
    <mappers>
        <mapper resource="com/xmonster/dao/UserMapper.xml"/>
    </mappers>

方式二:使用class文件方法, 使用映射器接口实现类的完全限定类名

    <mappers>
        <mapper class="com.xmonster.dao.UserMapper"/>
    </mappers>

方法三:使用包内的映射器接口(扫描包进行注入绑定),将包内的映射器接口实现全部注册为映射器

    <mappers>
        <package name="com.xmonster.dao"/>
    </mappers>

方法二、方法三注意点:

  • 接口和它的Mapper配置文件必须同名!
  • 接口和它的Mapper配置文件必须在同一个包下!
    -并且它们的连接都是用“.”进行连接
    <mappers>
        <mapper resource="com.xmonster.dao.*Mapper.xml"/>
    </mappers>

将该目录下所有xml文件通配

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(自我笔记)Mybatis XML重要部分配置分析 的相关文章

随机推荐