Java 整型与字符串数据类型转化问题
Java 调试遇到过一些报错的问题,比如:For input string: ""
,即 set 返回整型,但带入参数为空字符串。比如 Data too long "null"
,即一个 char(1)
的字段插入了 "null"
字符串,因为长度溢出导致失败。这两个都是字段数据类型没有设置正确导致的。
一开始遇到报错 For input string: ""
,是因为输入的是空字符串,识别的参数也是 String 类型,但数据库存储的是整型。只需要将输入参数类型改为 Integer
,空字符串会自动识别为 null,插入时就不会报错。
Data too long "null"
是手动添加了类型转化 String.valueOf(Integer.parseInt(""))
导致的。本来空字符串是可以自动转化为 null 的,加了这个转化之后,反倒导致 null 输出为 "null"
字符串了。去除掉多余的 null 转字符串即可。
经过测试,整型与字符串类型是可以在接收参数、使用 mapstruct 自动转化的,接收参数更加灵活,可以自由的从空字符串转化为 null,mapstruct 会根据输入参数、输出参数类型自动生成转化方法,当然本地测试需要 clean 手动清除实现类,再运行以重新生成。
建议整型优先选择整型存储和传输,如果遇到 若依(poi) Excel 导入 readConverterExp 读取内容转表达式转化失败,返回 null 这种需要设置为字符串类型的参数,可以后续增加 mapstruct 类型转化。