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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MyBatis核心配置文件解析: 一步步深入理解mybatis-config.xml

😀前言

在进行MyBatis项目开发时,合理和高效的配置是确保项目顺利进行的基础。其中,mybatis-config.xml配置文件扮演着极其重要的角色,它包含了MyBatis运行时的各种必要配置信息,如数据库连接属性、事务管理器配置、别名配置等。

.

提供了一份详细的mybatis-config.xml配置文件解析,一步一步解构每一个配置元素,并提供实例来让您更好地理解其工作原理。不管您是MyBatis的新手,还是有一些经验但希望加深理解的开发人员,希望可以给您提供极大的帮助。

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


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

说明

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

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

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 列表,通常使用默认

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

environments 环境

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

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

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配置,为您的下一个项目打下坚实的基础。

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


文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁

希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻

如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞


目录
相关文章
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
1月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
80 0
|
1月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
6天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
20 2
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
67 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
54 0

推荐镜像

更多