int值在数据库中存储为空字符串,试图将新值设置为旧值会产生“无法将字符串转换为int”问题

e4eetjau  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(434)

我有一个表单,允许用户不为customer输入int值。我想它是以空字符串的形式存储在数据库中的吧?
这是专栏 customer_no INT(11) NULL, 为什么要这样存放?我正在尝试为值为null或“”时创建触发器以使用存储的旧值。但它有一个错误:无法将字符串转换为int。有什么帮助吗?这是触发体

IF NEW.customer_no IS NULL OR NEW.customer_no= '' 
 THEN SET NEW.customer_no= OLD.customer_no;
 END IF;

[字段“customer_no”上对象“form”中的字段错误:拒绝值[];代码[typemismatch.form.customer_no,typemismatch.customer_no,typemismatch.int,typemismatch];参数[org.springframework.context.support.defaultmessagesourceresolvable:代码[form.customer_no,customer_no];参数[];默认消息[客户编号]];默认消息[未能将类型为'java.lang.string'的属性值转换为属性'customer\ no'所需的类型'int';嵌套异常为java.lang.numberformatexception:对于输入字符串:“”]]`
我使用springboot和jdbc查询从表单中获取信息并更新数据库,但是当值为null(而不是整数值)时,会显示此错误。我希望用户可以选择不为此字段输入值,如果他们希望更新其他字段,并且仍然保留以前为此特定字段输入的旧值。
例如,如果先前在数据库中输入的customer\u no是5,并且用户更新了数据库中的另一列,但没有为此字段输入值,则触发器应使用存储的旧值5而不是null,但它表示“无法将字符串转换为int”
希望这有点道理
谢谢您

z18hc3ub

z18hc3ub1#

将接收表单的类中的字段从int更改为integer。它应该得到一个空值,我想这就是你想要的。

相关问题