update table_name where id = ?
这个显然是对象所有字段都为null才会出现的错误语句,如果是只有几个字段为null,在代码中增加判空还算快捷
但如果出现需要判断的字段过多的情况,仍采取将每一个属性判断null的方法就显得比较麻烦和不太聪明的样子(🐶)
那么,利用反射机制实现对象属性全部为null的判断就显得极为方便了
import java.lang.reflect.Field;
public class CheckObjectNullUtil {
/**
* 校验对象中元素是否都为null
* @param obj 校验对象
* @return Boolean
*/
public static Boolean isAllFieldNull(Object obj){
Boolean flag = true;
try{
//得到类对象
Class stuCla = obj.getClass();
//得到属性集合
Field[] fs = stuCla.getDeclaredFields();
//遍历属性
for (Field f : fs) {
// 设置属性是可以访问的(私有的也可以)
f.setAccessible(true);
// 得到此属性的值
Object val = f.get(obj);
//只要有1个属性不为空,那么就不是所有的属性值都为空
if(val != null) {
flag = false;
break;
}
}
}catch (Exception e){
e.printStackTrace();
}
return flag;
}
}
引用地址:https://blog.csdn.net/qq_38487524/article/details/108539701