Mybatis 下拉框更新数据失效 更新不了

项目场景:

今天进行模块功能测试的时候发现:我点击修改员工的数据,员工的某些属性数据修改成功,某些属性数据修改失败(最终发现修改失败的数据全是下拉框所在的地方)。

原因分析:

始终没有找到原因,因为我想修改的值已经传入后端了,按理来说应该可以进行修改的,无奈找来了我的同事帮忙。
最终发现是我的动态SQL出了问题:
以性别为例:

	<%--前端界面--性别--%>
    <div class="layui-form-item">
        <label class="layui-form-label">性别</label>
        <div class="layui-input-inline">
            <select name="sex" lay-verify="required">
                <option value="0"></option>
                <option value="1"></option>
            </select>
        </div>
    </div>

而我的sql是这样写的:
在这里插入图片描述

按理来说这样的SQL写法是对的,但是因为sex属性在数据库里是int类型的,所以这里就出了问题
在这里插入图片描述
因为前端传进来的是“0”,当有!= ’ '的这个条件时参数0会被认为是false,所以更新不了该条属性数据。

解决方案:

一、是删除掉整个if语句,保留原始的风格(可前端校验是否为空)
二、删除删除! = ’ ’ 这部分
三、将! = ’ '这部分修改成! = ’ -1 ’

解决该问题过后我去搜索了一下产生问题的原因,从这篇博主的博文中得到了答案,特此感谢。

博文:点击此处跳转

此外,数据库属性为date类型的好像也不能加这个,我记得当时我报错了(具体是什么忘记了,当时的解决办法是直接删除的这部分)

新手小白,刚上路,有许多知识不清楚,还望大家多多指点一下我,谢谢啦


版权声明:本文为weixin_44415787原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。