😀前言
在进行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. & 表示 & 防止解析错误 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,来防止我们资源导出失败的问题
- 不同的idea/maven 可能提示的错误不一样
- 不变应万变,少什么文件,就增加相应配置即可
- 含义是将 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 别名处理器
- 别名是为 Java 类型命名一个短名字。它只和 XML 配置有关,用来减少类名重复的部分
- 如果指定了别名,我们的MappperXxxx.xml 文件就可以做相应的简化处理
- 注意指定别名后,还是可以使用全名的
- 举例说明
修改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 类型处理器
- 用于java 类型和jdbc 类型映射
- Mybatis 的映射基本已经满足,不太需要重新定义
- 这个我们使用默认即可,也就是 mybatis 会自动的将 java 和 jdbc 类型进行转换.
- 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连支持一下,创造不易您们的支持是我的动力🤞