java删除数据库为null的值

就是java中判断数据为null然后告诉数据库删除数据,不知道语句哪里写错了,麻烦帮我看看。

 if (acl.getMember_id() != null && !acl.getMember_id().equals("")
                                        && acl.getMember_id().equals(member.getMember_id()) 
                                        && acl.getNode_id() == null || acl.getNode_id().equals("")) {
                                    System.out.println(acl.getMember_id() + "," + acl.getNode_id());
                                    accessService.deleteNull(acl.getMember_id(), acl.getNode_id());
                                }
 <delete id="deleteNull" parameterType="string">
        DELETE from access_layer WHERE member_id = #{member_id} and node_id IS NULL;
    </delete>

1个回答

//传入两个参数
 accessService.deleteNull(acl.getMember_id(), acl.getNode_id());

 //仅使用了一个参数,会不会是这个问题
 DELETE from access_layer WHERE member_id = #{member_id} and node_id IS NULL;

 //其次,单步执行哈,下面这句是否执行到了
 accessService.deleteNull(acl.getMember_id(), acl.getNode_id());

 //再次,将打印出的sql通过数据库连接工具(如navcat等)执行,是否会报错。
FJeKin
FJekin 回复FJekin: getMemer_id为空,如果你这样写:(“”).equals(acl.getMember_id()),即使为空,也不会报错,代码不严谨
接近 3 年之前 回复
FJeKin
FJekin 回复qq_30709109: 首先,acl.getMember_id/acl.getNode_id得到的是字符串,建议这样写:StringUtils.isNotBlank(string),简洁高效,其次空指针,应该是acl对象getMember_id
接近 3 年之前 回复
sun1021873926
夕阳雨晴 找到问题就好啦。那就是你判断逻辑有问题,重新梳理哈,应该就可以正常运行啦。
接近 3 年之前 回复
qq_30709109
qq_30709109 嗯嗯。这个是一个问题,但是我打debug的时候发现是判断语句的时候出错:acl.getMember_id() != null && !acl.getMember_id().equals("") && acl.getMember_id().equals(member.getMember_id()) && acl.getNode_id() == null || acl.getNode_id().equals("")。。报空指针异常
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问