目录
[一.Spring Boot后端框架](#一.Spring Boot后端框架)
[三.Maven 的工作方式](#三.Maven 的工作方式)
一.Spring Boot后端框架
1.建立实体类,跟数据库表字段保持一致
2.建立mapper接口,定义要操作数据库的动作
3.建立mapper的xml文件,写具体的sql语句
4.建立service类,处理业务逻辑
5.在controller类中展示处理的结果
浏览器请求 /abcd
→ Controller.getUser() 调用
→ Service.findAll() 调用
→ Mapper.findAll() 执行 SQL
→ 数据库返回结果
← Mapper 返回 List
← Service 返回 List
← Controller 返回 JSON
← 浏览器收到数据


二.pom.xml配置文件

pom.xml放置着各种依赖,有了依赖才能运用 比如说redis,mysql,mybaits都必须添加,可以在刚创建项目时候勾选对应的依赖,也可以创建项目之后,去官网上找到对应依赖,进行手动添加。添加完后要通过Maven更新
<dependency>
<groupId>com.mysql</groupId> <!-- 谁写的 -->
<artifactId>mysql-connector-j</artifactId> <!-- 叫什么 -->
<scope>runtime</scope> <!-- 什么时候用 -->
</dependency>
三.Maven 的工作方式
你在 pom.xml 里声明"我要用这个库",Maven 会自动去网上(Maven 仓库)帮你下载,你不用手动去网上找 jar 包。就像你在购物清单上写"要一箱砖头",Maven 就是那个帮你去建材市场买回来的人。

这里是各个maven的jar包 也就是依赖
四.实体层(Entity)

这里是对应了你的数据库表里的各个数据,你要用表里的数据 必须全部都写下来
五.控制层(Controller)
-
职责:接收 HTTP 请求,返回响应
-
关键注解:
@RestController、@RequestMapping -
我的代码:
Usercontroller.java--- 处理/abc和/abcd请求

@RestController:注解:标记这个类是 REST 控制器,能接收 HTTP 请求并返回 JSON 数据
@Autowired:注解 :让 Spring 自动把 Userservice 对象注入进来,不用自己 new
private Userservice userservice:声明私有成员变量 userservice,类型是 Userservice(业务逻辑层)
@RequestMapping("/abc"):注解 :定义接口路径,访问 http://localhost:8080/abc 会执行这个方法
| 路径 | 数据来源 | 用途 |
|---|---|---|
/abc |
代码里硬编码(第17-22行手动 set) | 测试用,返回固定数据 |
/abcd |
调用 userservice.findAll() 查数据库 |
实际业务,返回数据库里的所有用户 |
@Autowired + userservice.findAll() 就是 Spring Boot 分层架构的体现:Controller 不直接操作数据库,而是交给 Service 层去处理。
六.数据访问层(Mapper)
-
职责:与数据库交互,执行 SQL
-
关键注解:
@Mapper、@MapperScan -
你的项目:
UserMapper.java+blog_platform.xml--- MyBatis 映射 SQL

在Mapper里定义了一个接口 UserMapper ,只定义了"要查什么";真正的 SQL 在 blog_platform.xml 里。MyBatis 会在运行时自动实现这个接口,把方法调用转成 SQL 执行。
接下来我们看resource/mapper 这是实现了那个接口

namespace是映射就是那个usermapper的路径
id就是mapper接口中实现的方法findAll()
resultType存放的是映射的数据库表这个实体包位置
然后写入sql的语句
resource包下面的另一个文件 yml配置的是与数据库的连接

七.业务层(Service)
-
职责:核心业务处理、事务管理
-
关键注解:
@Service -
你的项目:
Userservice.java--- 调用 Mapper 查询数据
接收 Controller 的请求(比如查所有用户)
调用 Mapper 执行数据库操作(userMapper.findAll())
处理业务逻辑(比如过滤、计算、校验等)
返回结果给 Controller

| 行号 | 代码 | 含义 |
|---|---|---|
| 1 | package org.example.demo3.Service; |
包声明,属于 Service 层 |
| 9 | @Service |
注解:标记这个类是 Spring 的 Service 组件,会被自动扫描并创建 Bean |
| 10 | public class Userservice { |
定义公开类 Userservice |
| 11 | @Autowired |
注解 :自动注入 UserMapper 对象,不用自己 new |
| 12 | private UserMapper userMapper; |
声明私有成员变量 userMapper,类型是 UserMapper(Mapper 接口) |
| 13 | public List<blog_platform> findAll(){ |
定义公开方法,返回 blog_platform 列表 |
| 13 | return userMapper.findAll(); |
调用 Mapper 的 findAll() 方法,把结果返回给上层 |
八.全流程
Controller 控制层
@RestController // ① 标记为控制器,返回 JSON
public class Usercontroller {
@Autowired // ② 自动注入 Service
private Userservice userservice;
@RequestMapping("/abc") // ③ 路径 /abc
public blog_platform getName(){
blog_platform bp = new blog_platform(); // ④ 创建对象
bp.setId(1); // ⑤ 手动塞数据(测试用)
bp.setUsername("TOM");
bp.setAge(18);
bp.setName("张三");
bp.setGender("男");
return bp; // ⑥ 返回对象 → 自动转 JSON
}
@RequestMapping("/abcd") // ⑦ 路径 /abcd
public List<blog_platform> getUser(){
return userservice.findAll(); // ⑧ 调用 Service 查数据库
}
}
Service 业务层
@Service // ① 标记为业务组件
public class Userservice {
@Autowired // ② 自动注入 Mapper
private UserMapper userMapper;
public List<blog_platform> findAll(){
return userMapper.findAll(); // ③ 调用 Mapper 执行 SQL
}
}
Mapper 数据访问层
@Mapper // ① 标记为 MyBatis 接口
public interface UserMapper { // ② 注意是 interface,不是 class
List<blog_platform> findAll(); // ③ 只写方法名,SQL 在 XML 里
}
配套的 blog_platform.xml:
<mapper namespace="org.example.demo3.Mapper.UserMapper">
<select id="findAll" resultType="org.example.demo3.Entity.blog_platform">
SELECT * FROM user <!-- 真正的 SQL 在这里 -->
</select>
</mapper>
三层对比
| Controller | Service | Mapper | |
|---|---|---|---|
| 注解 | @RestController |
@Service |
@Mapper |
| 类型 | class | class | interface |
| 注入谁 | 注入 Service | 注入 Mapper | (不需要注入) |
| 职责 | 接收请求、返回响应 | 业务逻辑 | 定义数据库操作 |
| 写 SQL 吗 | 不写 | 不写 | 接口不写,XML 里写 |
| 返回给谁 | 返给浏览器 | 返给 Controller | 返给 Service |