现在的位置: 首页 > 综合 > 正文

Exception in thread “main” com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too lo

2018年05月28日 ⁄ 综合 ⁄ 共 391字 ⁄ 字号 评论关闭

今天在测试往数据库存图像、读图像以及更新图像时,前面存和读都没问题,但是后面用一张新图new.jpg更新时就出现上面的异常,图像字段为img,BLOB类型。

   Data truncation即字段过长,放不下。网上找了半天都是关于编码的。即中文字符一个字符占据的空间是一个英文字符的两倍,因此而导致放不下。但是我这个是图像的存取,存取的是Binary Stream(字节流),所以我怀疑可能是图像文件过大,一查果不其然。

   old.jpg原图有55.6K,而new.jpg有92.3K。去查了下BLOB允许的最大值,如下:

    MySQL的四种BLOB类型

  类型               大小(单位:字节)

  TinyBlob         最大 255

  Blob              最大 65K

  MediumBlob  最大 16M

  LongBlob       最大 4G

   显然92.3K超出了BLOB的最大范围。

抱歉!评论已关闭.