前端同学学习SpringBoot的第 7 天

125 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第12天,点击查看活动详情

前言

先前我们实现了获取用户查询接口,还实现了添加用户的插入接口,那么今天我们就来实现一下更新数据接口。

实践

更改数据的接口本质上就是数据库的改操作,update 表名 set 列1=值1,列2=值2,…… where 条件

接下来我们就来实现一下这个 updateUser() 更新用户接口。

在 UserService 以及 UserMapper 中定义好接口方法。

void updateUser(UserBean userBean);

然后在我们的 UserMapper.xml 中实现更新的SQL语句。

<?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.li.test.mapper.UserMapper">

    <update id="updateUser">
        update user set name=#{name}, age=#{age}, gender=#{gender}, isDelete=#{isDelete}, password=#{password} where id=#{id}
    </update>

</mapper>

注意,这里我们用的是 <update> ,然后用的参数,#{name} age=#{age} gender=#{gender} 就来自我们定义好UserBean参数。

接着,在 UserServiceImpl.java  中具体实现 updateUser() 方法。

@Override
public void updateUser(UserBean userBean) {
    userMapper.updateUser(userBean);
}

最后,在我们的 UserController.java 中定义好更新数据方法对外的接口路径与参数。

/**
 * 更改用户
 * @param userBean
 */
@PostMapping("/users/update")
public void updateUser(UserBean userBean) {
    System.out.println(userBean.toString());
    userService.updateUser(userBean);
}

像之前 addUser() 方法中,我们有为参数添加 @RequestBody 的参数注解,但是这次updateUser()方法中,我们却没有添加,这是为什么呢?@RequestBody 又有什么作用呢?

简单的了解一下,是这样子的,像在我们使用postman工具来调试接口时,添加的body可以是 form-data 的格式,也可以是 raw-json 的格式,当我们为参数添加了@RequestBody注解时,我们就只可以使用 raw-json 的格式了,而不能使用form-data的格式了。

@requestBody注解常用来处理 content-type 不是默认的 application/x-www-form-urlcoded 编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。

接下来就是编写测试用例,验证一下我们的代码是否正确。

@Test
void contextLoads() {

    System.out.println("************* test UserController.updateUser() ***************");
    UserBean ub = new UserBean(8, "Lisa", 88, 1, "888666", 0);
    userService.updateUser(ub);
}

这里的意思呢就是将user表中id为8的那一行,数据更改为(”Lisa”, 88, “888666”, “0”)

测试通过后,我们运行项目,然后通过postman来调试http://127.0.0.1:8080/users/update接口。

updateUser-huhu.png

这里采用的是POST请求,Response code 返回 200,请求成功。

接着查看数据库,检查一下是否更新成功。

截屏2022-06-25 下午11.40.35.png

总结

今天我们实现了更新数据updateUser()接口,接下来就是学习一下删除操作,这样我们也就完成了一套数据库CRUD操作。