原文链接:https://blog.csdn.net/y_qc_lookup/article/details/117037411
BeanCheckUtils代码:
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sdmc.smarthome.entity.SysUser;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @创建人: Dylan
* @创建时间: 2020/8/12
* @描述
*/
public class BeanCheckUtils {
/**
*
* @param obj 需要检测的数据对象
* @param ignoreParms 需要忽略的字段名称
* @return 返回
*/
public static Map<String, Object> checkObject(Object obj, List<String> ignoreParms, Map<String, Object> checkInfor){
ignoreParms.add("id");
for(Field f : obj.getClass().getDeclaredFields()){
f.setAccessible(true);
try {
String propetryName=f.getName();
// 排除忽略的字段
if(!ignoreParms.contains(propetryName)){
if(EmptyUtil.isEmpty(f.get(obj))){
return getResMap(false,checkInfor.get(propetryName)+"");
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return getResMap(true,"数据正常");
}
/**
* 只验证指定的字段
* @param obj
* @param parms
* @param checkInfor
* @return
*/
public static Map<String, Object> checkObjectByParms(Object obj, List<String> parms, Map<String, Object> checkInfor){
for(Field f : obj.getClass().getDeclaredFields()){
f.setAccessible(true);
try {
String propetryName=f.getName();
// 只判断指定的字段
if(parms.contains(propetryName)){
if(EmptyUtil.isEmpty(f.get(obj))){
return getResMap(false,checkInfor.get(propetryName)+"");
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return getResMap(true,"数据正常");
}
private static Map<String, Object> getResMap(boolean checkStatus, String memo){
Map<String, Object> resMap=new HashMap<>();
resMap.put("status",checkStatus);
resMap.put("memo",memo);
return resMap;
}
public static Map<String, Object> getCheckInfor(Object obj){
Map<String, Object> checkInfor=new HashMap<>();
for(Field field : obj.getClass().getDeclaredFields()) {
field.setAccessible(true);
JsonProperty annotation = field.getAnnotation(JsonProperty.class);
if(EmptyUtil.isNotEmpty(annotation)){
checkInfor.put(field.getName(),annotation.value()+",不能为空!");
}else{
checkInfor.put(field.getName(),field.getName()+",不能为空!");
}
}
return checkInfor;
}
public static void main(String[] args) {
}
}
对象属性:
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* </p>
*
* @author Dylan
* @since 2020-11-27
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BrandBasStorentp extends Model<BrandBasStorentp> {
private static final long serialVersionUID = 1L;
/**
* 自增id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* brand_basic_infor id,
*/
private Integer brandId;
/**
* 入库企业名
*/
@JsonProperty("入库企业名")
private String rkqym;
/**
* 入库证明图片
*/
@JsonProperty("入库证明图片")
private String rkzmImg;
/**
* 新增时间
*/
private Date addTime;
@Override
protected Serializable pkVal() {
return this.id;
}
}