优化一下验证实体类参数方法 public ResultRespone saveYhda(@RequestBody DaCustomer daCustomer,@RequestBody DaMeter daMeter ) { //获取最大用户编号 Map<String ,Object> map= daCustomerMapper.selectMaxCustomerNo(); int yhbh=Integer.parseInt(map.get("CUSTOMER_NO").toString())+1; daCustomer.setCustomerNo(String.valueOf(yhbh)); daCustomer.setCustomerNoOld(String.valueOf(yhbh)); ResultRespone<Object> rest = new ResultRespone<>(); if(StringUtils.isEmpty(daCustomer.getCustomerName())) { rest.setCode(-1); rest.setMessage("用户姓名不能为空"); } if(StringUtils.isEmpty(daCustomer.getCustomerAddress())) { rest.setCode(-1); rest.setMessage("用户地址不能为空"); }
时间: 2024-03-20 09:38:49 浏览: 63
实体类验证
可以使用 Spring Boot 提供的校验注解来优化代码,例如使用 @NotBlank 注解进行非空校验,@Valid 注解进行校验,同时在方法参数中添加 BindingResult 对象,用于接收校验结果,从而更加清晰地处理校验结果。代码示例如下:
```
@PostMapping("/save")
public ResultRespone saveYhda(@RequestBody @Valid DaCustomer daCustomer, @RequestBody @Valid DaMeter daMeter, BindingResult bindingResult) {
//获取最大用户编号
Map<String ,Object> map = daCustomerMapper.selectMaxCustomerNo();
int yhbh = Integer.parseInt(map.get("CUSTOMER_NO").toString()) + 1;
daCustomer.setCustomerNo(String.valueOf(yhbh));
daCustomer.setCustomerNoOld(String.valueOf(yhbh));
ResultRespone<Object> rest = new ResultRespone<>();
if (bindingResult.hasErrors()) {
StringBuilder errorMsg = new StringBuilder();
bindingResult.getAllErrors().forEach(error -> {
errorMsg.append(error.getDefaultMessage()).append(";");
});
rest.setCode(-1);
rest.setMessage(errorMsg.toString());
return rest;
}
// 业务逻辑处理
return rest;
}
```
在上述代码中,@Valid 注解用于对方法参数进行校验,BindingResult 对象用于接收校验结果。如果存在校验不通过的情况,可以通过遍历 bindingResult 中的所有错误信息并拼接错误信息,最终返回错误码和错误信息。这种方式可以让代码更加简洁、易读,同时也提高了代码的可维护性。
阅读全文