本文将从零开始,系统讲解如何在 Spring Boot 项目中集成 MyBatis 框架,实现对 MySQL 数据库的高效读写操作。内容由浅入深,结构清晰,适合初学者和进阶开发者参考。
目录
2.springboot中使用mybatis读取mysql数据
2.接下来就写一个从后端获取所有的user信息并返回给前端的流程

1.SQL知识点回顾:
1.数据库与表的基本概念
- 数据库(Database):逻辑容器,用于组织和存储一组相关的表。
- 表(Table):由行(记录)和列(字段)组成,每一列有固定的数据类型。
- 主键(Primary Key):唯一标识一条记录,不可为空(NOT NULL),推荐使用自增整数或 UUID。
- 外键(Foreign Key):用于建立表间关系,保证引用完整性(可选,MyBatis 中常通过逻辑关联实现)。
2.数据类型选择
整型:INT/BIGINT (ID主键建议用BIGINT防溢出)
字符串: VARCHAR(n) 可变长,n<=1000
时间:DATETIME/TIMESTAMP DATETIME 范围大,不带时区;TIMESTAMP 自动更新,带时区转换
布尔:TINYINT(1)
3.表结构设计最佳实践
主键命名统一为id
字段名用小字+下划线(如create_time)
避免使用mysql保留字段(如order desc)
4.DDL :创建与修改表

修改表结构:

5:DML:增删改查
1:插入(INSERT)

2.查询(SELECT)
![]()
3.更新(UPDATE)
![]()
4.删除(DELETE)

6.查询进阶:WHERE、ORDER BY 、LIMIT
条件查询:

where用于条件查询,用来查询符合条件的数据,例子说明查询user表中所有大于18 且 (名字格式开头是张的或者邮箱不是空的) order by 根据created_at 降序排序 limit 只取前10条

like concat ('%',#{keyword},'%') 表示只有字符串中有keyword就符合匹配
7.聚合函数 group by

COUNT()用于统计数量
SUM()用于加取数量
AVG()用于计算平均数
MAX()用于找到最大值
MIN()用于找到最小值
8.JOIN多表关联查询


内连接只返回两张表中匹配的记录,只有当左表和右表在连接条件上都有对应行时,才会出现在结果中。等于是两表的交集。
适用场景:只关心“双方都存在”的数据,比如“查询有订单的用户”。

左连接以左表为主,左表的所有记录都会显示在结果中,如果右表没有匹配的记录,则右表字段显示为 NULL。
适用场景:查询“所有用户,以及他们的订单(没有订单也显示)”。
2.springboot中使用mybatis读取mysql数据

1.创建springboot项目



2.新建数据库

创建一张名为user的表 字段信息如下

3.配置数据库连接
在 pom.xml中 添加mybatis 依赖 使用maven自动下载依赖

在application.yml中

url中 springboot_mybatis 是你的数据库名
username 是你的用户名
password是你的密码
driver-class-name是你的驱动器名字
mybatis中mapper-locations 是你的mapper存放的位置 一般放在资源文件中

type-aliases-package 是你定义的类的位置

map-underscore-to-camel-case 是驼峰映射

在启动类中@mapperscan 扫描你mapper包的位置
4.springboot从前端到后端数据库全流程

现在我们已经建好了项目所需要的包
controller控制包 主要是用来接收发送的请求,交给service处理,并返回处理好后的数据
entity 实体包 用于存放定义好的类
mapper包 用于存放mapper接口与resources中的mapper.xml映射
service包 用于处理数据,给交mapper去与数据库交互
resources下的mapper包 存放的是mapper.xml文件 里面写的是sql语句与数据库交互

1.mapper.xml 文件基础知识





2.接下来就写一个从后端获取所有的user信息并返回给前端的流程
1.entity
首先在entity实体包下 定义一个User类 并为他添加属性(这里的属性类型和名字都应该与数据库中的类型名字一一对应,数据库中有下划线的内容,在类中可以用大写来代替),并自动创建他们的getter和setter方法和toString 方法。

2.mapper
在mapper包中创建一个接口UserMapper @Mapper是将当前接口注册成Bean 创建一个返回User集合的getUsers()方法;

在resources下的mapper中创建一个UserMapper.xml namespace中的内容是对应上面mapper中的UserMapper 写一个select 查询 user中的所有数据

3.service
在service包中创建一个UserService接口 添加@service注解 用于注册Bean 创建getUsers方法

在他的实现类中 使用@Service注册Bean @Autowired 注解注入Bean对象 实现getUsers方法


4.controller
在controller包中使用@RestController注解 @Autowired 注入UserService 创建一个get方法的getUser()方法.

5.测试结果
成功返回数据库中的所有数据


3.总结:
本文系统地讲解了如何在 Spring Boot 项目中集成 MyBatis 框架,实现对 MySQL 数据库的高效读写操作。内容从 SQL 基础知识入手,涵盖数据库设计规范、常用 DDL/DML 语句、多表关联查询(如 INNER JOIN、LEFT JOIN)以及聚合函数等核心概念,为后续开发打下坚实基础。
在此基础上,文章详细演示了 Spring Boot 与 MyBatis 的整合流程:
- 通过合理配置
pom.xml和application.yml,完成数据库连接与 MyBatis 环境搭建; - 遵循分层架构(Controller → Service → Mapper → Entity),清晰划分职责,提升代码可维护性;
- 利用
@MapperScan自动注册 Mapper 接口为 Spring Bean,并借助map-underscore-to-camel-case实现数据库下划线字段与 Java 驼峰属性的自动映射; - 通过编写完整的增删改查示例(特别是查询所有用户信息的全流程),展示了从前端请求到数据库交互再到响应返回的完整链路。
整个过程强调规范性(如主键命名、字段命名)、可扩展性(接口与实现分离)和工程实践性(依赖管理、配置优化),既适合初学者快速上手,也为进阶开发者提供了可复用的最佳实践模板。
掌握这一套技术栈组合(Spring Boot + MyBatis + MySQL),将为你构建高性能、可维护的企业级后端服务奠定坚实基础。后续可进一步探索动态 SQL、分页插件、事务管理、缓存集成等高级特性,持续提升开发效率与系统稳定性。
9012

被折叠的 条评论
为什么被折叠?



