Spring 3 MVC + MySQL:无法存储€字符

时间:2010-07-12 17:11:11

标签: java mysql hibernate spring-mvc

我使用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。然而,当我询问我的模型对象的属性时,只是?的。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你确定MySQL数据库支持UTF-8吗?我认为默认安装设置使用latin1。您还需要确保my.ini配置文件中[mysql]和[mysqld]的'default-character-set'设置为'utf8'。此外,请确保该表是使用UTF-8设置构建的。