Spring Boot + MyBatis + MySQL 入门与实战详解

本文将从零开始,系统讲解如何在 Spring Boot 项目中集成 MyBatis 框架,实现对 MySQL 数据库的高效读写操作。内容由浅入深,结构清晰,适合初学者和进阶开发者参考。

目录

1.SQL知识点回顾:

       1.数据库与表的基本概念

          2.数据类型选择

        3.表结构设计最佳实践

        4.DDL :创建与修改表

                5:DML:增删改查

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

7.聚合函数 group by 

2.springboot中使用mybatis读取mysql数据

1.创建springboot项目

2.新建数据库

3.配置数据库连接

4.springboot从前端到后端数据库全流程

1.mapper.xml 文件基础知识

2.接下来就写一个从后端获取所有的user信息并返回给前端的流程

1.entity

2.mapper

3.service

4.controller

5.测试结果

3.总结:


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、分页插件、事务管理、缓存集成等高级特性,持续提升开发效率与系统稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值