我使用Hibernate和MySQL 5设置了Spring 3 MVC。在Web表单中,我将一个字符输入到字段中,€(即只有一个字符)。当我然后尝试保存数据时,我得到以下异常:
java.sql.BatchUpdateException: Data truncation: Data truncated for column 'name' at row 1
'name'是我的模型对象上的String。 'name'列在MySQL中的数据类型为VARCHAR(80)。我也尝试在TEXT列中输入€,结果相同。
我为我的webapp配置了一个CharacterEncodingFilter,我的数据库连接字符串如下所示:
jdbc:mysql://localhost/baseApp?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
任何想法可能是什么问题?
更新
我不认为MySQL与此问题有任何关系。我已经设置了模型对象的属性并且€正确编码为%80之前拦截了HTTP POST。然而,当我询问我的模型对象的属性时,只是?的。
有什么想法吗?
答案 0 :(得分:0)
你确定MySQL数据库支持UTF-8吗?我认为默认安装设置使用latin1。您还需要确保my.ini配置文件中[mysql]和[mysqld]的'default-character-set'设置为'utf8'。此外,请确保该表是使用UTF-8设置构建的。