mapper层属于持久层的接口,负责数据访问层操作

service负责具体的业务逻辑操作

controller接受请求响应数据

| 层级         | 关键词         | 如果缺失的后果                                     |
| ---------- | ----------- | ------------------------------------------- |
| Mapper     | **数据访问**    | 业务代码被 SQL 绑架,换数据库=重写系统                      |
| Service    | **事务+业务编排** | Controller 变“大泥球”,复用、测试、维护统统崩溃              |
| Controller | **协议适配**    | Service 被迫关心 HTTP、gRPC、JSON、权限、限流,无法沉淀纯领域逻辑 |

DeptController.java

/**
     * 新增部门
     */
    @PostMapping("/depts")
    public Result add(@RequestBody Dept dept){
        deptService.add(dept);
        return Result.success();
    }

DeptService.java

 /**
     * 新增部门
     * @param dept
     */
    void add(Dept dept);

DeptServiceImpl.java

 @Override
    public void add(Dept dept) {
        //1.补全基础属性
        dept.setCreateTime(LocalDateTime.now());
        dept.setUpdateTime(LocalDateTime.now());

        System.out.println("新增部门:" + dept);
        //2.插入
        deptMapper.insert(dept);
    }

DeptMapper.java

    /**
     * 新增部门
     * @param dept
     */
    @Insert("insert into dept(name, createTime, updateTime)values(#{name},#{createTime},#{updateTime}) ")
    void insert(Dept dept);

前后端联调一切正常。

新增部门:Dept(id=null, name=测试部, createTime=2025-09-02T23:07:57.445462600, updateTime=2025-09-02T23:07:57.445462600)

更多推荐