执行流程

前端/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

List<MallUser> queryAll();

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

List<MallUser> queryAll();

ServiceImpl

@Override
public List<MallUser> queryAll() {
    return this.mallUserDao.queryAll();
}

Controller

@GetMapping
public ResponseEntity<List<MallUser>> queryAll() {
    return ResponseEntity.ok(this.mallUserService.queryAll());
}

测试

http://localhost:8080/mallUser

在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐