【发布时间】:2024-05-04 16:00:02
【问题描述】:
我使用 Hibernate 和 MySQL 5 设置了 Spring 3 MVC。在 Web 表单中,我在字段中输入了一个字符,€(即只有一个字符)。然后,当我尝试保存数据时,出现以下异常:
java.sql.BatchUpdateException: Data truncation: Data truncated for column 'name' at row 1
'name' 是我的模型对象上的字符串。 'name' 列是 MySQL 中的数据类型 VARCHAR(80)。我也尝试在 TEXT 列中输入 €,结果相同。
我为我的 webapp 配置了 CharacterEncodingFilter,我的数据库连接字符串如下所示:
jdbc:mysql://localhost/baseApp?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
任何想法可能是什么问题?
更新:
我不认为 MySQL 与这个问题有任何关系。在设置模型对象的属性之前,我已经截获了 HTTP POST,并且 € 被正确编码为 %80。但是,当我询问模型对象的属性时,€ 只是 ?。
有什么想法吗?
【问题讨论】:
-
您能否展示一些来自 webapp 的示例代码,以便我们缩小可能性?谢谢!
标签: java mysql hibernate spring-mvc