SSM宿舍管理系统的问题


请问有人知道这个项目的添加管理员为什么失败吗,或者说怎么修改,才能正确运行
我已经发现,它在插入数据库的时候的数据有一部分是null,但我前端传过去的数据是没有null的

检查下前端传递的参数名和后端接收的参数名是否一致,接受对象是否定义了getset方法。

打印日志,看看前端传递的数据,后台是否都正确收到了,再检查SQL参数是否正确,是否传给了SQL,应该也有SQL日志可以查看。

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/656561
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:SSM整合项目出现的小插曲:从数据库查询数据为null
  • 以下回答由chatgpt基于相关博客总结生成:

    在该问题中,问题出现在插入数据库时出现了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的属性值跳过,不返回给前端,从而解决添加管理员失败问题。