# java连接mysql时抛出Data truncation: Data too long for column xxx

- Link: https://www.xuepaijie.com/html/skill/devops/492.html
- Published: 2015-12-01T17:53:22+08:00
- Author: Admin

当往数据库中插入语句时，连接池抛出了“com.mysql.jdbc.MysqlDataTruncation: Data truncation:
Data too long for column ‘xxx’ at row xxx”的异常。

从提示的信息表面上来看，说是什么数据对于列“xxx”过长。于是修改了数据库，如mysql中
text类型是可变长度的字符串，最多65535个字符，把字段类型改成MEDIUMTEXT（最多存放16777215
个字符）或者LONGTEXT（最多存放4294967295个字符）。

结果并不成功解决，那么肯定还存在新的问题。

将目光转到编码问题上，编码分代码层和数据库本身，代码层使用了utf-8，那基本上是标准
的。通过发现，数据库里的出异常的列编码并不是utf-8的，也就是说存在里外编码格式不统一
的情况。

好了，问题解决了，总结下：

1、尝试调整字段的类型，如文章描述的那样，改长或改为更大的类型；

2、尝试审计异常列所在的表，看编码的格式可与代码层统一。
