更新操作无异常信息,但是数据库中的数据没有更改
原因:
JavaScript中回显的数据不需要id,但更新操作需要使用id但是你没有传入
问题描述:
更新信息(带有回显功能)的时候
点击修改按钮之后–>页面回显效果一切正常;
更改完数据之后,点击提交之后也没有报错信息;
但是数据库中并没有更改
在之前写项目联系的时候遇到过这样的问题:
点击修改按钮之后–>页面回显效果一切正常
更改完数据之后,点击提交之后也没有报错信息;但是数据库中并没有更改。
解决方案
解决这个问题的方法大体分为两种:
- 让id的这个<input >标签可见,但不让修改就行了;
- 就是给 <input > 标签设置不可见;
有一下三个属性可供选择:
<input type=“hidden” /> | 规定:input为隐藏域度,在页知面上不可道见。 无任何效果 |
---|---|
<input type=“text” disabled=“disabled” /> | 规定 :disabled 属性规定应该禁用 input 元素 效果 :不可编辑,不可复制,不可选择,不能接收焦点,设置后文字的颜色会变成灰色,后台也不会接收到传值。 |
<input type=“text” readonly=“readonly”/> | 规定 :规定输入字段为只读可复制 效果 :可选择,可以接收焦点,还可以选中或拷贝其文本。后台可以接收到传值.。readonly 属性可以防止用户对值进行修改。 |
<input type=“text” readonly unselectable=“on” /> | 规定 :与disable类似 效果 :不可编辑,不可复制,不可选择,不能接收焦点,设置后文字的颜色也会变成灰色,但是后台可以接收到传值。 |
相信看完这个表格答案已经出来了:
- 回显时不需要将此值显示到页面
<input type="hidden" />
-
回显时有显示到页面的需求
<input type="text" readonly="readonly">
相比上面的多了一个unselectable=“on” ,在页面上的效果好像就在提醒用户我是只能看的
(不可编辑,不可复制,不可选择,不能接收焦点,文字的颜色也会变成灰色)
<input type="text" readonly unselectable="on" >
到错误,要分步进行调错**
找错原因:
1、写完mapper之后,全部进行了JUnit测试,所以排除mapper层错误
2、由mapper向上追踪;可能是service层在调用时传入的值不是理想的值;
所以在service层的代码中设置打印语句查看(或者使用断点调试查看)传入的数据,
···
果不其然!到这里就发现了错误,看到id为0
附图: