【发布时间】:2021-08-31 20:16:39
【问题描述】:
我试图通过(java.sql.PreparedStatement.executeUpdate()) 调用存储过程来通过@PutMapping (org.springframework.web.bind.annotation.PutMapping) 更新数据库中的资源。这一步工作得很好,我得到了低于 DB 的整数响应:
- 1 - 1 行已更新
- 0 - 没有更新行
我想根据从数据库返回的整数将响应发送回用户,因为我从其余控制器返回 ResponseEntity<UpdateResponseVO>,其中 UpdateResponseVO 是普通的 POJO 类:
public class UpdateResponseVO {
private String responseCode;
private String message;
}
我根据以下条件构建 ResponseEntity:
UpdateResponseVO apiResponse = new UpdateResponseVO();
if (row > 0) {
apiResponse.setResponseCode("200");
apiResponse.setMessage("Updated Successfully.");
return new ResponseEntity<UpdateResponseVO>(apiResponse, HttpStatus.OK);
}
else {
apiResponse.setResponseCode(???);
apiResponse.setMessage("No row updated.");
return new ResponseEntity<UpdateResponseVO>(apiResponse, ???);
}
现在我的问题是当 0 行被更新时我的响应代码应该是什么(当我们不知道数据库中要更新的当前值并且我们给出相同的值时,就会出现这种情况。例如,在 DB 中已经是学生名称是“abc”,我们想再次将其更新为“abc”。因此更新的行将是 0) 以及我应该与 ResponseEntity 一起发送的 HttpStatus。
【问题讨论】:
-
这能回答你的问题吗? Right HTTP status code to wrong input
-
已编辑问题,请立即查看。
标签: java spring-boot http-status-codes spring-restcontroller