报错:PreparedStatementCallback; uncategorized SQLException for SQL [insert into user values(null , ? ,?,?,?)]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xE5\x90\xB4\xE5\x93\xB2...' for column 'username' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xE5\x90\xB4\xE5\x93\xB2...' for column 'username' at row 1什么问题
这个错误的根本原因是 MySQL 在尝试插入含有特殊字符(如中文、表情符号等)的字符串时,目标字段的字符集不支持这些字符。具体错误信息表明:
- 字段:
username
- 值:包含非 ASCII 字符(如
吴哲
等中文字符)。 - 错误代码:
1366
,表示字符串值与字段的字符集定义不兼容。
解决方案:
将表字段的字符集设置成utf8mb4,同时确保 JDBC URL 请求地址的的字符集配置为utf8mb4。