使用mybatis-plus的updateById方法更新一个numeric(1)类型字段,sql成功执行,但是updates为0,更新失败的解决办法

使用mybatis-plus的updateById方法更新一个numeric(1)类型字段,sql成功执行,但是updates为0,更新失败的解决办法:

背景:我有一张表,有个启用禁用功能,没有放在编辑页面一起编辑保存,而是在列表中使用layui的开关组件,点击开关修改状态,结果一直提示更新失败

XML 复制代码
==>  Preparing: UPDATE supplies_master SET is_available=? WHERE item_code=?
==> Parameters: 0(Integer),  910070800 (String)
<==    Updates: 0

SQL打印结果如上,sql是能正常运行的,但实际就是更新失败,且只是因为这一个字段导致更新失败,同样的方法在编辑页面(多字段更改)保存就啥问题都没有

最后测试发现增删查都没有问题,多字段同样的调用mybatis-plus的updateById也是没问题的(连controller接口都是调用同一个)

网上查到mybatis把0当成false因此不会更新,但是我把值改成1-9等等也都是无法更新成功

把字段numeric(1)类型更改成String类型问题依旧无法解决

最后把该字段改名,改类型,实体属性名,实体属性类型统统改了个遍还是无效,最终才发现原来问题出在参数有个空格,我的天,搞了半天是数据的问题

然后在插入之前trim()就好了 ,而之所以在编辑页面就没事,是因为我从数据库读了一次详情放到编辑页面输入框了,不知道是thymeleaf还是layui的原因帮我把空格去掉了,因此没有报错

这个字段产生空格的原因就是我在js中使用了jquery的.text()方法,导致获取的文本尾部有个空格

我的实例(layui列表中的开关获取当前行第一列的文本与开关的值传到后台更新):

javascript 复制代码
form.on('switch(isAvailable)', function(data) {
            // 得到开关的value值,实际是需要修改的ID值。
            var itemCode = data.othis.parents('tr').find("td").eq(1).text().trim(); //获取id
            var isAvailable = this.checked ?  1 :  0;
            $.ajax({
                type: 'get',
                url: '/updateSuppliesItem',
                data: {
                    "itemCode": itemCode,
                    "isAvailable": isAvailable
                },
                success: function(data) {
                    if (data.code == 0) {
                        layer.msg('更新成功', {icon: 1});
                    } else {
                        layer.msg(data.msg, {icon: 5});
                    }
                },
                dataType: 'JSON',
            });
		});
相关推荐
xqqxqxxq7 小时前
Java AI智能P图工具技术笔记
java·人工智能·笔记
HalvmånEver7 小时前
MySQL的增删改查命令合集合集
数据库·sql·oracle
谷雨不太卷7 小时前
进程的状态码
java·前端·算法
顾温7 小时前
default——C#/C++
java·c++·c#
空中海7 小时前
02 ArkTS 语言与工程规范
java·前端·spring
楚国的小隐士7 小时前
在AI时代,如何从0接手一个项目?
java·ai·大模型·编程·ai编程·自闭症·自闭症谱系障碍·神经多样性
不剪发的Tony老师7 小时前
dblab:一款基于终端的交互式数据库客户端
数据库·sql
yaki_ya7 小时前
yaki-C语言:从概念基础到内存解析---数组(array)完全指南
java·c语言·算法
刃神太酷啦7 小时前
扒透 STL 底层!map/set 如何封装红黑树?迭代器逻辑 + 键值限制全手撕----《Hello C++ Wrold!》(23)--(C/C++)
java·c语言·javascript·数据结构·c++·算法·leetcode
亚历克斯神7 小时前
Java 25 模式匹配增强:让代码更简洁优雅
java·spring·微服务