1.區(qū)別
PUT:更新實體中所有字段信息,前端需要提交實體中所有字段;
PATCH:更新實體中部分字段信息,只需要上傳需要修改的字段;
2.使用
Put使用比較簡單,就是把實體所有字段信息上傳上去更新
PATCH使用參考了別人寫的,定義了一個上傳格式類:PatchDataDto
@Data
@ApiModel("patch方法通用對象")
public class PatchDataDto {
@ApiModelProperty(value ="字段名",required =true)
@NotBlank(message ="字段名不能為空")
private Stringfield;
? ? @ApiModelProperty(value ="新value",allowEmptyValue =true)
private Objectvalue;
}
然后利用Java反射類將字段更新入實體后,更新實體
WyOrderRepair wyOrderRepair =wyOrderRepairMapper.selectByPrimaryKey(id);
for (PatchDataDto patchDataDto:list) {
Field field = ReflectionUtils.findField(WyOrderRepair.class, patchDataDto.getField());
? field.setAccessible(true);
? if(field.getType() == Date.class&&patchDataDto.getValue()!=null){
ReflectionUtils.setField(field, wyOrderRepair, new Date(Long.parseLong(patchDataDto.getValue().toString())));
? }else{
ReflectionUtils.setField(field, wyOrderRepair, patchDataDto.getValue());
? }
}
wyOrderRepairMapper.updateByPrimaryKey(wyOrderRepair);
數(shù)據(jù)庫操作使用了mybatis