springboot+mybatisplus根据id更新password字段,实现控制层
时间: 2024-01-01 13:05:59 浏览: 61
代码如下:
```
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PutMapping("/{id}/password")
public ResponseEntity<?> updatePasswordById(@PathVariable Long id, @RequestBody String password) {
User user = userService.getById(id);
if (user == null) {
return ResponseEntity.notFound().build();
}
user.setPassword(password);
boolean success = userService.updateById(user);
if (success) {
return ResponseEntity.ok().build();
}
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
```
在上述代码中,我们使用了`@PutMapping`注解来声明一个PUT请求,请求的路径为`/user/{id}/password`,其中`{id}`为动态路径参数,表示要更新的用户的ID。请求体为一个字符串,表示要设置的新密码。
控制层方法的逻辑如下:
1. 首先使用`userService.getById(id)`方法查询要更新的用户对象。
2. 如果查询结果为null,说明要更新的用户不存在,返回404状态码。
3. 将查询到的用户对象的`password`属性设置为新密码。
4. 调用`userService.updateById(user)`方法更新用户对象。
5. 如果更新成功,返回200状态码;否则返回500状态码。
阅读全文