发送表情tomcat报错,请问怎么解决?数据库编码已经改为utf8mb4,连接字符串也改了,都不行

JohnnyZz 发布于 2016/06/20 11:56
阅读 489
收藏 0

错误信息如下:

2016-06-20 10:43:55,294 ERROR com.bsteel.vs.webapp.controller.BaseController:181 - org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO vsns_topic SET `from`=?,`type`=?,`uid`=?,`videoid`='0',`lastupdate`=UNIX_TIMESTAMP(),`dateline`=UNIX_TIMESTAMP(),`totid`=?,`touid`=?,`anonymous`='0',`item`='',`item_id`='0',`channel_id`='0',`username`=?,`musicid`='0',`roottid`='0',`content`=?,`postip`=?,`post_ip_port`='64020']; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x98\x81\xF0\x9F...' for column 'content' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81\xF0\x9F...' for column 'content' at row 1

加载中
0
JohnnyZz
JohnnyZz

我已经解决了,看地址

http://www.cnblogs.com/yjmyzz/p/mysql-utf8mb4-jdbc.html

0
JohnnyZz
JohnnyZz
==>3093IZVc:  2016-06-20 10:43:55,294 ERROR com.bsteel.vs.webapp.controller.BaseController:181 - org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO vsns_topic SET `from`=?,`type`=?,`uid`=?,`videoid`='0',`lastupdate`=UNIX_TIMESTAMP(),`dateline`=UNIX_TIMESTAMP(),`totid`=?,`touid`=?,`anonymous`='0',`item`='',`item_id`='0',`channel_id`='0',`username`=?,`musicid`='0',`roottid`='0',`content`=?,`postip`=?,`post_ip_port`='64020']; SQL state [HY000]; error code [1366]; Incorrect string value: '\xF0\x9F\x98\x81\xF0\x9F...' for column 'content' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x81\xF0\x9F...' for column 'content' at row 1
==>3093IZVc:  2016-06-20 10:43:55,294 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
==>3093IZVc:  2016-06-20 10:43:55,295 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
==>3093IZVc:  2016-06-20 10:43:55,295 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
==>3093IZVc:  2016-06-20 10:43:55,296 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:660)
==>3093IZVc:  2016-06-20 10:43:55,298 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:909)
==>3093IZVc:  2016-06-20 10:43:55,298 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:970)
==>3093IZVc:  2016-06-20 10:43:55,299 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:980)
==>3093IZVc:  2016-06-20 10:43:55,299 ERROR com.bsteel.vs.webapp.controller.BaseController:183 - com.bsteel.vs.dao.impl.TopicDaoImpl.saveTopic(TopicDaoImpl.java:35)
0
Zemo
Zemo
看一下你要保存表情的字段编码是不是utf8mb4
0
无悔这一生
无悔这一生
可以考虑把content字段用base64转码后再存储。
0
ydf_kobe
ydf_kobe
表情字段一般用 blob类型存储,查询的时候再转一下即可
JohnnyZz
JohnnyZz
这是重构的项目,别人用php都可以的,用java就不可以了
0
听_风
听_风

这个错误应该是很数据库有关系。前不久刚碰到过。

https://segmentfault.com/a/1190000000616820

这个帖子整理的还算比较完整的。

0
o
oneflower
很多人在使用mysql数据库的时候遇到编码问题,在mysql数据库使用时,
字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级
你需要查下你各级别字符集跟校对规则,修改成你需要的字符集及校对规则就可以了。

参考自:
MySQL的字符集和校对
返回顶部
顶部