Data too long for column 'xxxx' at row 1 除了字段超长的另一种情况

{
 "result":null,
 "resultCode":"10001",
 "resultMsg":"\n### Error updating database.  Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'xxxx' at row 1\n### The error may exist in class path resource [mapper/xxxx.xml]\n### The error may involve xxxxx.insertSelective-Inline\n### The error occurred while setting parameters\n### SQL: insert into xxxx  ( xxxx,  xxxx,  xxxx, xxxx
, xxxx, xxxx, xxxx ) values ( ?, ?, ?, ?, ?, ?, ? )\n### Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'xxxx' at row 1\n; ]; Data truncation: Data too long for column 'xxxx' at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'xxxx' at row 1" }

  今天代码里面报了一个这样的错误,Debug的时候取出这条SQL 和对应字段的数据  发现用Navicat 可以执行插入动作,然后很长的一段时间一直搞不定这个错误,因为字段映射正确,数据库中字段够长。

 

后来发现是同事在表中新增字段后,在修改 Mybatis的 映射xml文件时,insert into xxxx(column1,column2,column_add_1,column_add2,column3,column4) values (value1,value2,value_add_1,value_add2,value3,value4) 时 value_add_1,value_add2 两个新增列 位置写错了,写成了(value1,value2,value3,value4,value_add_1,value_add2)

这样一来,虽然在Java代码中 字段的内容是通过 bean 对应的字段传递到mybatis的映射文件中,但在执行插入动作时,字段匹配错误,导致原来很短的一个列,插入了很长的数据,所以报了  Data too long for column 'xxxx' at row 1  这个错误。

 

中间浪费了两个小时没定位出来,这件是让我想到,我在定位错误的时候,应该仔细的看控制台打印的日志,而不能想当然的主观上肯定错误不会出现在某处,从而浪费时间。



 

转载于:https://www.cnblogs.com/cm-2019/p/11476870.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值