hibernate 不能插入数据库 汉字问题

使用hibernate框架,页面编码gb2312,使用过了过滤器编码gb2312,数据库编码好像是utf-8的
插入的时候总是抱 Data too long for column ... ... 的错。

还是将系统平台全都改为utf吧,节省很多事的。。。

数据库字段长度设计得太小了吧?

Data too long for column,这个错的话,一就是你本身数据库字段设置的和插入的不一致,二就是如果是汉字的话,编码之间转化的话,一个汉字数据库如果采用的是gb2312和采用的utf-8的编码的大小比例应该是1比2的关系,所以,你可能就是如果插入的字符串是“我的aaa”,你定义的数据库大小是6的话,那就是gb2312的是可以插入的,utf-8的就会报data too long for column这个错了!

问下你?你的数据库是什么数据库?
我在用mysql数据库的时候发生过这样的情况,set进去的和数据库的编码类型不一致会有这样的问题,

下面看下解决方法:

charset类型不支持中文,把我们库中的charset改成gbk,然后再把我们的collation的类型改成gbk_chinese_ci这个类型的就可以了,这样就可以支持中文编码了,然后也就不会出现不能插入的问题了,这个问题是出在mysql中,在别的数据库中不知道有没有这样的问题。

Data too long for column .这个和编码应该没什么关系,你看看你的某个数据库字段column 的长度太短了吧,把异常信息粘全一点

写个Hibernate字符处理类吧.继承CharacterFilter.

把数据库的这个字段长度改大一点就可以了吧