当前位置:首页 > 芯闻号 > 充电吧
[导读]原来数据库结构CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `user_nickname` varchar(255) CH

原来数据库结构


CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_nickname` varchar(255) CHARACTER SET utf8 DEFAULT NULL COMMENT '抽奖用户昵称'
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;




user_nickname 字段非 utf8mb4  保存表情符号报错。




insert into user (user_nickname) values (?)


java.lang.RuntimeException: org.hibernate.exception.GenericJDBCException: Incorrect string value: 'xF0x9Fx92xA5' for column 'user_nickname' at row 1
org.hibernate.exception.GenericJDBCException: Incorrect string value: 'xF0x9Fx92xA5' for column 'user_nickname' at row 1
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129)




解决办法:


 修改字段编码类型为 utf8mb4 




 sql 语句: ALTER TABLE user MODIFY COLUMN user_nickname varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户昵称';
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭