文章目录
- 执行流程
- 每一层到底负责什么?
- [每一层在 CRUD 中是怎么协作的](#每一层在 CRUD 中是怎么协作的)
-
- [第一步:Postman 发请求](#第一步:Postman 发请求)
- [第二步:Controller 接收](#第二步:Controller 接收)
- [第三步:Service 调用 Dao](#第三步:Service 调用 Dao)
- [第四步:Dao 找到 XML 中同名 SQL](#第四步:Dao 找到 XML 中同名 SQL)
- [第五步:返回 JSON 给前端/Postman](#第五步:返回 JSON 给前端/Postman)
- CRUD各接口到底该怎么用?
- 补一个"查询所有用户"接口
执行流程
前端/Postman发请求 → Controller接收请求 → Service处理业务 → Dao访问数据库 → MyBatis的XML执行SQL → 返回结果
Controller 接请求,Service 处理业务,Dao 调 SQL,XML 操作数据库,Entity 封装数据。
每一层到底负责什么?

Entity层

Dao层(包含两个文件)


Service层(包含两个文件)
Service 是业务层,主要负责:
调用 Dao
处理业务逻辑
决定返回什么结果



Controller层
Controller 负责接收 HTTP 请求。

每一层在 CRUD 中是怎么协作的
我们拿"查询 id=1 的用户"为例。
第一步:Postman 发请求

第二步:Controller 接收

第三步:Service 调用 Dao

第四步:Dao 找到 XML 中同名 SQL

第五步:返回 JSON 给前端/Postman

CRUD各接口到底该怎么用?
查询单个用户
查出 mall_user 表里 id=1 的数据。
http://localhost:8080/mallUser/1


新增用户
http://localhost:8080/mallUser


修改用户
修改 id=1 的这条记录,把用户名改成"李四",地址改成"shanghai"。
http://localhost:8080/mallUser


删除用户
http://localhost:8080/mallUser?id=1


CRUD的本质

补一个"查询所有用户"接口
Dao
java
List<MallUser> queryAll();
XML
xml
<select id="queryAll" resultMap="MallUserMap">
select id, user_id, user_name, user_gender, user_address, user_birthday, user_phone, create_time, update_time
from mall_user
</select>
Service
java
List<MallUser> queryAll();
ServiceImpl
java
@Override
public List<MallUser> queryAll() {
return this.mallUserDao.queryAll();
}
Controller
java
@GetMapping
public ResponseEntity<List<MallUser>> queryAll() {
return ResponseEntity.ok(this.mallUserService.queryAll());
}
测试
http://localhost:8080/mallUser
