代码编织梦想

3.2 修改员工

当用户修改完数据之后,点击保存按钮,就需要将数据提交到服务端,然后服务端需要将修改后的数据更新到数据库中。

3.2.1 接口文档
  • 基本信息

    请求路径:/emps
    ​
    请求方式:PUT
    ​
    接口描述:该接口用于修改员工的数据信息
  • 请求参数

    参数格式:application/json

    参数说明:

    名称类型是否必须备注
    idnumber必须id
    usernamestring必须用户名
    namestring必须姓名
    gendernumber必须性别, 说明: 1 男, 2 女
    imagestring非必须图像
    deptIdnumber非必须部门id
    entrydatestring非必须入职日期
    jobnumber非必须职位, 说明: 1 班主任,2 讲师, 3 学工主管, 4 教研主管, 5 咨询师

    请求数据样例:

    {
      "id": 1,
      "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-03-07-37-38222.jpg",
      "username": "linpingzhi",
      "name": "林平之",
      "gender": 1,
      "job": 1,
      "entrydate": "2022-09-18",
      "deptId": 1
    }

  • 响应数据

    参数格式:application/json

    参数说明:

    参数名类型是否必须备注
    codenumber必须响应码,1 代表成功,0 代表失败
    msgstring非必须提示信息
    dataobject非必须返回的数据

    响应数据样例:

    {
        "code":1,
        "msg":"success",
        "data":null
    }

3.2.2 实现思路

3.2.3 代码实现
  • EmpMapper

@Mapper
public interface EmpMapper {
    //修改员工信息
    public void update(Emp emp);
    
    //省略...
}
  • EmpMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.EmpMapper">
​
    <!--更新员工信息-->
    <update id="update">
        update emp
        <set>
            <if test="username != null and username != ''">
                username = #{username},
            </if>
            <if test="password != null and password != ''">
                password = #{password},
            </if>
            <if test="name != null and name != ''">
                name = #{name},
            </if>
            <if test="gender != null">
                gender = #{gender},
            </if>
            <if test="image != null and image != ''">
                image = #{image},
            </if>
            <if test="job != null">
                job = #{job},
            </if>
            <if test="entrydate != null">
                entrydate = #{entrydate},
            </if>
            <if test="deptId != null">
                dept_id = #{deptId},
            </if>
            <if test="updateTime != null">
                update_time = #{updateTime}
            </if>
        </set>
        where id = #{id}
    </update>
​
    <!-- 省略... -->
   
</mapper>
  • EmpService

public interface EmpService {
    /**
     * 更新员工
     * @param emp
     */
    public void update(Emp emp);
   
    //省略...
}
  • EmpServiceImpl

@Slf4j
@Service
public class EmpServiceImpl implements EmpService {
    @Autowired
    private EmpMapper empMapper;
​
    @Override
    public void update(Emp emp) {
        emp.setUpdateTime(LocalDateTime.now()); //更新修改时间为当前时间
        
        empMapper.update(emp);
    }
    
    //省略...
}
  • EmpController

@Slf4j
@RestController
@RequestMapping("/emps")
public class EmpController {
​
    @Autowired
    private EmpService empService;
​
    //修改员工
    @PutMapping
    public Result update(@RequestBody Emp emp){
        empService.update(emp);
        return Result.success();
    }
    
    //省略...
}

3.2.4 postman测试

3.2.5 前后端联调测试

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_69748833/article/details/135943353

【javaee & spring & 项目】博客系统-爱代码爱编程

博客系统 前⾔项⽬介绍1. 准备⼯作1.1 数据准备1.2 创建项⽬1.3 准备前端⻚⾯1.4 配置配置⽂件1.5 测试 2. 项⽬公共模块2.1 实体类的编写2.2 公共层 3. 业务代码3.1

springboot源码解读与原理分析(二十一)ioc容器的刷新(二)-爱代码爱编程

文章目录 7.4 BeanFactory准备工作完成后的后置处理7.4.1 回调父类方法7.4.1.1 ServletContextAwareProcessor7.4.1.2 注册Web应用的作用域

java日志框架总结(四 、jcl日志门面技术)-爱代码爱编程

日志框架出现的历史顺序:Log4j → JUL → JCL → slf4j → logback → log4j2 一、背景 在前面博文中,我们分别讲述了常用的2个日志框架:JUL(Java Util Logging)、Log4J。那么如何选择使用哪一个呢? 根据项目需求而定,在项目设计之初,功能比较单一简单,那么我们可以使用JUL日志框架,使

springboot中使用spring自带线程池threadpooltaskexecutor与java8completablefuture实现异步任务示例-爱代码爱编程

场景 关于线程池的使用: Java中ExecutorService线程池的使用(Runnable和Callable多线程实现): Java中ExecutorService线程池的使用(Runnable和Callable多线程实现)_executorservice executorservice = executors.newfix-CSDN博客 J

springcloud-爱代码爱编程

注意springboot以及springcloud版本,可能有莫名其妙的错误,这里使用的是springboot-2.6.13,springcloud-2021.0.5 一,Eureka-Server搭建: 1.创建项目:引入依赖 <dependency> <groupId>org.springframe

java集合框架在数据处理中的应用场景-爱代码爱编程

目录 List Set Map LinkedMultiValueMap 集合框架的主要优点是通过使用高性能的数据结构和算法,可以帮助开发者更高效地处理数据。此外,集合框架的接口和实现是可互换的,因此可以通过切换实现来调整程序的行为。以下是集合框架中的一些主要接口和类。 List 适用场景:当需要保持元素的插入顺序,或者需要频繁访问元

一、ssm 整合理解-爱代码爱编程

本章概要 什么是 SSM 整合?SSM 整合核心问题明确 SSM 整合需要几个 IoC 容器?每个 IoC 容器对应哪些类型组件?IoC 容器之间关系和调用方向?具体多少配置类以及对应容器关系?IoC 初始化方式和配

l1-爱代码爱编程

输入样例: 8 0 Amy 1 Tom 1 Bill 0 Cindy 0 Maya 1 John 1 Jack 0 Linda 输出样例: Amy Jack Tom Linda Bill Maya Cindy John   import java.io.BufferedReader; import java.io.IOException

springsecurity(19)——oauth2客户端信息存储-爱代码爱编程

ClientDetailsService public interface ClientDetails extends Serializable { String getClientId();//客户端id Se

java stram 流对于返回对象的处理 (结束流)-爱代码爱编程

Java Stram 流对于返回对象的处理 (结束流) package com.zhong.streamdemo.showdownstreamdemo; import lombok.AllArgsConstructor;

javascript 跨窗口通信(cross-爱代码爱编程

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​  ​ ✨ 前言 在现代 Web 开发中,跨窗口通信是一种常见需求。它允许在不同的窗口或框架之间传递数据和消息,从而实现各种功能。 本章将介绍如何在 JavaScript 中实现跨窗

java图形化界面编程——菜单组件 笔记-爱代码爱编程

2.7 菜单组件 ​ 前面讲解了如果构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中展示就可以了。在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方便的使用特定