详解SpringBoot整合Mybatis框架

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 详解SpringBoot整合Mybatis框架

前言


人生是一段旅程,走过的路,就是你编织的生活,我们无法预知以后的路途,但是,我们能把握现在的自己,珍惜身边的一切,脚踏实地的走,走好自己的路,不在生命里给自己留下遗憾的风景!

对于企业开发来说,稳定性和便捷性是最重要的两个特性,SpringBoot更像是一个框架的框架,能够实现对多个框架的快速整合和自动装配,很好的满足了企业的需求。在学习了一段时间的框架知识、做了几个项目之后,现在回过头来对SpringBoot装配各种框架进行一个回顾,本文记录SpringBoot如何整合Mybatis框架。

一、创建SpringBoot项目


image.png

阿里云的地址如下:

image.png

image.png

image.png

下图为创建好的SpringBoot项目

image.png

在这里可能会出现左侧的项目导航栏出java文件和recourse文件显示的都是普通的文件夹,右侧没有maven项目的图标,这个是因为还没有全部下载完成,等待下载完成即可

二、配置Mybatis


配置Mybatis的步骤为:

  1. 在pom.xml文件中添加jar包依赖
  2. SpringBoot项目整合Mybatis配置文件
    (1) 连接数据库
    (2) SpringBoot整合Mybatis
  3. 创建Mapper接口
  4. 创建XML映射文件

1. 在pom.xml文件中添加jar包依赖


在这里要添加依赖的jar包有三种,分别为SpringBoot整合Mybatis包,数据库驱动包,JDBC包

SpringBoot整合Mybatis包:

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency>

数据库驱动包:

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>

JDBC包:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>

作者的idea版本为2020.2,在高版本的idea中maven项目没有了自动导入依赖的功能,需要我们自己手动去添加依赖

image.png

2. SpringBoot整合Mybatis配置文件


首先先在项目工程中创建pojo包,路径为:src->main->java->(自己的项目路径)->创建pojo包

image.png

SpringBoot的配置参数多数都在application.properties或application.yml文件中进行配置,新创建好的SpringBoot项目中默认的配置文件为application.properties,因为yml文件相较于properties文件来说,更具备层次性,所以作者将文件后缀名改为了yml

接着在pojo包下创建User实体类,用于之后测试是否整合成功

image.png

User类代码:

@Data@Accessors(chain=true)
publicclassUserimplementsSerializable {
privateIntegerid;
privateStringname;
privateIntegerage;
privateStringsex;
}

实现序列化的作用在于:保证数据在传输时的完整性

接着在yml文件中配置如下参数:

spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/jt?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=trueusername: root#如果数据库密码以数字0开头,则必须使用""号包裹->例如"01234"password: 123456#SpringBoot整合Mybatis配置mybatis:
#定义别名映射包:实现对象映射type-aliases-package: cn.shijimo.springboot_mybatis.pojo#加载映射文件,一个接口对应一个映射文件mapper-locations: classpath:/mappers/*.xml# 开启驼峰映射configuration:map-underscore-to-camel-case: true

参数解释:

  1. serverTimezone=Asia/Shanghai (选择时区为亚洲上海)
  2. useUnicode=true&characterEncoding=utf8 (是否使用unicode编码及设定字符集)
  3. autoReconnect=true (是否自动重连)
  4. allowMultiQueries=true (是否允许批量操作)

三、创建Mapper接口


在项目路径下新建名为mapper的包,在包中创建名为UserMapper的接口

image.png

image.png

Mapper接口代码:

public interface UserMapper {
    List<User> selectAll();
}

四、创建XML映射文件


在resource目录下新建文件夹命名为mappers,在mappers文件夹中创建xml文件命名为UserMapper.xml

image.png

UserMapper.xml文件代码:

<?xmlversion="1.0"encoding="utf-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="cn.shijimo.springboot_mybatis.mapper.UserMapper"><sqlid="allCols">id,name,age,sex</sql><selectid="selectAll"resultType="User">select<includerefid="allCols"></include>fromdemo_user;
</select></mapper>

之前作者写过如何配置Mapper.xml文件的模板,可以参考链接

IDEA添加Mapper.xml文件模板

五、测试


在测试类中测试是否整合成功,首先在主类上添加包扫描注解,告诉SpringBoot中Mapper接口在哪里

image.png

image.png

接口无法通过new关键字来创建实例,而自动注入时Spring容器内部会为接口创建代理对象 -> JDK的动态代理对象

测试类代码:

@SpringBootTestpublicclassSpringbootMybatisApplicationTests {
@AutowiredprivateUserMapperuserMapper;
@TestpublicvoidselectAllTest() {
List<User>userList=userMapper.selectAll();
for (Useruser : userList) {
System.out.println(user);
        }
    }
}

运行结果:

image.png

总结


以上便为SpringBoot整合Mybatis框架的过程,形象地说,Spring Boot就像一种快速、有效的“万能胶”,SpringBoot几乎能将Java领域的所有框架与Spring框架迅速地整合在一起,而且由于Spring Boot为这些框架的整合提供了自动配置功能,因此整合它们几乎不需要提供额外的配置信息——不仅不需要提供XML配置,甚至连注解都可以省略。

想干就干,要干就干的漂亮,即使没有人为你鼓掌,至少还能够勇敢的自我欣赏。当你为自己的坎坷人生不断鼓掌,加油、奋进时,必将迎来别人的掌声与喝彩!

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
6月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
6月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
393 8
|
7月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
521 2
SQL XML Java
263 0
|
7月前
|
监控 Kubernetes Cloud Native
Spring Batch 批处理框架技术详解与实践指南
本文档全面介绍 Spring Batch 批处理框架的核心架构、关键组件和实际应用场景。作为 Spring 生态系统中专门处理大规模数据批处理的框架,Spring Batch 为企业级批处理作业提供了可靠的解决方案。本文将深入探讨其作业流程、组件模型、错误处理机制、性能优化策略以及与现代云原生环境的集成方式,帮助开发者构建高效、稳定的批处理系统。
718 1
|
7月前
|
SQL Java 数据库连接
区分iBatis与MyBatis:两个Java数据库框架的比较
总结起来:虽然从技术角度看,iBATIS已经停止更新但仍然可用;然而考虑到长期项目健康度及未来可能需求变化情况下MYBATISS无疑会是一个更佳选择因其具备良好生命周期管理机制同时也因为社区力量背书确保问题修复新特征添加速度快捷有效.
531 12
|
8月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
8月前
|
Cloud Native Java API
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
Java Spring框架技术栈选和最新版本及发展史详解(截至2025年8月)-优雅草卓伊凡
1421 0
|
8月前
|
SQL XML Java
MyBatis框架如何处理字符串相等的判断条件。
总的来说,MyBatis框架提供了灵活而强大的机制来处理SQL语句中的字符串相等判断条件。无论是简单的等值判断,还是复杂的条件逻辑,MyBatis都能通过其标签和属性来实现,使得动态SQL的编写既安全又高效。
613 0
|
9月前
|
安全 Java 微服务
Java 最新技术和框架实操:涵盖 JDK 21 新特性与 Spring Security 6.x 安全框架搭建
本文系统整理了Java最新技术与主流框架实操内容,涵盖Java 17+新特性(如模式匹配、文本块、记录类)、Spring Boot 3微服务开发、响应式编程(WebFlux)、容器化部署(Docker+K8s)、测试与CI/CD实践,附完整代码示例和学习资源推荐,助你构建现代Java全栈开发能力。
892 2