ERROR org.hibernate.util.JDBCExceptionReporter - Incorrect string value: '\xF0\x9F\x90\x8F\xE7\xBE...' for column 'device_name' at row 1这个错误是由于mysql不支持emoji表情所导致的。
1、mysql的版本需要在5.5.3以上(另:有人说mysql相关的jar包也有版本限制,如果在所有的步骤尝试都失败后,可以尝试升级jar包)
2、在my.cnf中对应位置增加下面语句:
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server=utf8mb4
character-set-client-handshake = FALSE //这句话不加会使得保存到数据中的表情是个问号
init-connect='SET NAMES utf8mb4'
[mysql]
default-character-set=utf8mb4
3、修改数据库、对应的表、对应的字段的编码图中所示
4、jdbc.url=jdbc:mysql://localhost:3306/preschool_edu?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull
autoReconnect配置建议加上,忽略它,可能会因为缓存缘故,没有读取到DB最新配置,而无法使用utf8mb4字符集。
上面三个步骤都做完就可以存储emoji表情。尝试少修改任何一个地方,emoji表情都无法成功保存