MyBatis核心配置文件解析: 一步步深入理解mybatis-config.xml

2023-12-13 04:58:47

😀前言
在进行MyBatis项目开发时,合理和高效的配置是确保项目顺利进行的基础。其中,mybatis-config.xml配置文件扮演着极其重要的角色,它包含了MyBatis运行时的各种必要配置信息,如数据库连接属性、事务管理器配置、别名配置等。
.
提供了一份详细的mybatis-config.xml配置文件解析,一步一步解构每一个配置元素,并提供实例来让您更好地理解其工作原理。不管您是MyBatis的新手,还是有一些经验但希望加深理解的开发人员,希望可以给您提供极大的帮助。

🏠个人主页:尘觉主页
在这里插入图片描述

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在csdn获奖荣誉: 🏆csdn城市之星2名
???? ???? ???? ???? ???? ???? ???? ???? 💓Java全栈群星计划top前5
???? ???? ???? ???? ???? ???? ???? ???? 🤗 端午大礼包获得者
???? ???? ???? ???? ???? ???? ???? ???? 🥰阿里云专家博主
???? ???? ???? ???? ???? ???? ???? ???? 😉亚马逊DyamoDB结营

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊

MyBatis核心配置文件解析: 一步步深入理解mybatis-config.xml

说明

mybatis 的核心配置文件(mybatis-config.xml),比如配置 jdbc 连接信息,注册 mapper等等,我们需要对这个配置文件有详细的了解

文档地址: https://mybatis.org/mybatis-3/zh/configuration.html

img

properties 属性

● 通过该属性,可以指定一个外部的 jdbc.properties 文件,引入我们的 jdbc 连接

创建 jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
jdbc.user=root
jdbc.pwd=123456

修改 mybatis-confing.xml

    <environments default="development">
        <environment id="development">
            <!--配置事务管理器-->
            <transactionManager type="JDBC"/>
            <!--配置数据源
            解读
            1. 我们使用外部的properties文件来设置相关的值
            2. 这个属性文件,需要统一的放在 resources目录/类加载路径
            3. 关于属性文件,在讲解java基础-集合
            -->
            <dataSource type="POOLED">
                <!--配置驱动-->
                <!--<property name="driver" value="com.mysql.jdbc.Driver"/>-->
                <property name="driver" value="${jdbc.driver}"/>
                <!--配置连接mysql-url
                解读:
                1. jdbc:mysql 协议
                2. 127.0.0.1:3306 : 指定连接mysql的ip+port
                3. mybatis: 连接的DB
                4. useSSL=true 表示使用安全连接
                5. &amp; 表示 & 防止解析错误
                6. useUnicode=true : 使用unicode 作用是防止编码错误
                7. characterEncoding=UTF-8 指定使用utf-8, 防止中文乱码
                8. 温馨提示:不要背,直接使用即可
                -->
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.user}"/>
                <property name="password" value="${jdbc.pwd}"/>
            </dataSource>
        </environment>
    </environments>

修改父项目的 pom.xml(如果已经配置了*.properties 就不用再配置) 并完成测试

解读:

在build中配置resources,来防止我们资源导出失败的问题

  1. 不同的idea/maven 可能提示的错误不一样

  2. 不变应万变,少什么文件,就增加相应配置即可

  3. 含义是将 src/main/java目录和子目录 和 src/main/resources目录和子目录的资源文件 xml 和 properties在build项目时,导出到对应的target目录下

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
    </build>

settings 全局参数定义

settings 列表,通常使用默认

img

typeAliases 别名处理器

  1. 别名是为 Java 类型命名一个短名字。它只和 XML 配置有关,用来减少类名重复的部分
  2. 如果指定了别名,我们的MappperXxxx.xml 文件就可以做相应的简化处理
  3. 注意指定别名后,还是可以使用全名的
  4. 举例说明

修改mybatis-confi g.xml

    <!--配置别名-->
    <typeAliases>
        <!--<typeAlias type="com.wyxedu.entity.Monster" alias="Monster"/>-->

        <!--
            如果一个包下有很多的类,我们可以直接引入包,这样
            该包下面的所有类名,可以直接使用
        -->
        <package name="com.wyxedu.entity"/>
    </typeAliases>

修改MonsterMapper.xml 并完成测试

没有在 mybatis-config.xml 指定 typealiases 时,需要给 Monster 指定全类名

   <!--配置addMonster
       1. id="addMonster" 就是接口的方法名
       2. parameterType="com.wyxedu.entity.Monster" 放入的形参的类型
       3. 注意"com.wyxedu.entity.Monster" 可以简写
       4. 写入sql语句=> 建议,现在sqlyog 写完成-测试通过,再拿过来
       5. (`age`, `birthday`, `email`, `gender`, `name`, `salary`) 表的字段
       6. (#{age}, #{birthday}, #{email}, #{gender}, #{name}, #{salary}) 是从传入的monster对象属性值
       7. 这里 #{age} age 对应monster对象的属性名,其它一样
   -->
    <insert id="addMonster" parameterType="Monster" useGeneratedKeys="true" keyProperty="id">
        INSERT INTO `monster`
        (`age`, `birthday`, `email`, `gender`, `name`, `salary`)
        VALUES (#{age}, #{birthday}, #{email}, #{gender}, #{name}, #{salary})
    </insert>

typeHandlers 类型处理器

  1. 用于java 类型和jdbc 类型映射
  2. Mybatis 的映射基本已经满足,不太需要重新定义
  3. 这个我们使用默认即可,也就是 mybatis 会自动的将 java 和 jdbc 类型进行转换.
  4. java 类型和 jdbc 类型映射关系一览 [ 手 册 ]

https://mybatis.org/mybatis-3/zh/configuration.html#typeHandlers

img

environments 环境

resource 注册Mapper 文件: XXXMapper.xml 文件(常用,使用过)

img

class:接口注解实现(使用过)

img

url:外部路径,使用很少,不推荐,

package 方式注册 : 并测试

当一个包下有很多的 Mapper.xml 文件和基于注解实现的接口时,为了方便,我们可以以包方式进行注册将下面的所有 xml 文件和注解接口 都进行注册

<package name="com.wyxedu.mapper"/>

😄总结

通过这篇详细的指南,我们已经深入探讨了MyBatis的mybatis-config.xml配置文件的各个方面。我们学习了如何通过外部属性文件配置JDBC连接信息,如何利用typeAliases来简化XML配置,以及如何正确配置和使用typeHandlers来处理特殊的Java类型和JDBC类型映射。

我们还详细讨论了settings配置和environments配置,以及如何通过pom.xml确保资源文件被正确处理。我们甚至深入研究了如何以包的方式注册Mapper文件,简化了Mapper的管理。

希望这份指南能帮助您更好地掌握MyBatis配置,为您的下一个项目打下坚实的基础。

感谢您的阅读,祝您编码愉快!

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

文章来源:https://blog.csdn.net/apple_67445472/article/details/132822747
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。