码迷,mamicode.com
首页 > 其他好文 > 详细

Data truncation: Data too long for column错误分析

时间:2014-09-13 03:03:15      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:java   mysql   jdbc   

有一次遇到mysql jdbc抛出异常

Data truncation: Data too long for column

经过思考,发现原因可能有两种:

一、字段长度不够。

可以考虑选择更长的字段,例如:

VARCHAR->TEXT->MEDIUMTEXT->LONGTEXT->LONGBLOB

另外mysql貌似没有nvarchar类型


二、数据源URL中的字符集选项跟数据库表的实际字符集不统一

如果是统一的话,Java代码的写法应该是:

String driverName = "com.mysql.jdbc.Driver";

String dbURL = "jdbc:mysql://localhost:3306/cmsproj?useUnicode=true&characterEncoding=utf-8";


而数据表的创建方式是

CREATE TABLE xxx

( ...

) ENGINE=MyISAM DEFAULT CHARSET=utf8 


注意:

* 数据库也可以指定字符集,但如果在create table中使用默认字符集,则create table更优先。

* Java代码在编译时使用utf8还是gbk不会有影响,只要传入的参数不是乱码就可以。


其实不统一字符集的话也是可以工作,只是有一定概率会抛出Data truncation异常,例如URL中指定了utf8字符集,而创建表不指明utf8字符集或者使用缺省latin字符集,则有可能抛出异常。



本文出自 “weimingtom的以心伝心” 博客,请务必保留此出处http://weimingtom.blog.51cto.com/5787478/1551786

Data truncation: Data too long for column错误分析

标签:java   mysql   jdbc   

原文地址:http://weimingtom.blog.51cto.com/5787478/1551786

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!