请问有人知道这个项目的添加管理员为什么失败吗,或者说怎么修改,才能正确运行
我已经发现,它在插入数据库的时候的数据有一部分是null,但我前端传过去的数据是没有null的
检查下前端传递的参数名和后端接收的参数名是否一致,接受对象是否定义了getset方法。
打印日志,看看前端传递的数据,后台是否都正确收到了,再检查SQL参数是否正确,是否传给了SQL,应该也有SQL日志可以查看。
在该问题中,问题出现在插入数据库时出现了null值,导致添加管理员失败。首先需要确定哪个字段出现了null值,可以在插入数据库之前,在后端打印出即将插入数据库的管理员对象,查看哪个字段为null。然后可以尝试以下两种解决方案:
方法一:在DTO对象上加注解,跳过为null的属性,不返回给前端
如果确定该字段为null时不需要返回给前端,可以选择在DTO对象上加上注解,跳过为null的属性。具体操作如下:
在DTO对象的对应字段上加上注解:
//如果值为Null则不返回该条属性。 @JsonInclude(JsonInclude.Include.NON_NULL)
这样就可以跳过该字段为null的属性,不返回给前端。
方法二:拷贝属性,跳过为null的属性值
如果需要将该对象返回给前端,但又不想将为null的属性值返回给前端,可以选择拷贝属性时跳过为null的属性。具体操作如下:
在工具类中添加拷贝属性方法:
/* * 拷贝属性,跳过为null的属性值,如果目标对象或源对象为空,取消拷贝 * * @param source 源对象 * @param target 目标对象 / public static void copyProperties(Object source, Object target) { if (source != null && target != null) { //...省略部分代码,在该方法中实现遍历对象属性,并设置为null的属性跳过 BeanUtils.copyProperties(source, target, getNullPropertyNames(source)); } }
在配置文件中设置全局变量,Null值不返回给前端:
spring: jackson: default-property-inclusion: non_null
这样就可以在返回给前端前,将为null的属性值跳过,不返回给前端,从而解决添加管理员失败问题。