国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL存儲表情時報錯:java.sql.SQLException: Incorrect string value:‘/xF0/x9F/x92/xA9/x0D/x0A...’的解決方法

2024-07-25 19:08:17
字體:
來源:轉載
供稿:網友

前言

本文主要介紹了關于MySQL存儲表情報錯:java.sql.SQLException: Incorrect string value: '/xF0/x9F/x92/xA9/x0D/x0A...'的相關解決方法,分享出供大家參考學習,下面話不多說了,來一起看看詳細的介紹:

本項目是基于Spring MVC + MySQL + Druid DataSource。在往數據庫插入表情Emoji字符時報錯:

java.sql.SQLException: Incorrect string value: '/xF0/x9F/x92/xA9/x0D/x0A...'

普通字符最多占用3個字節,使用utf8足夠。而emoji表情字符占用4個字節,需要使用utf8mb4字符集存儲。解決需要在兩個地方做修改:MySQL服務器端和連接的客戶端。

MySQL服務器端

之前給大家介紹過使MySQL能夠存儲emoji表情字符的設置教程,想進一步了解的朋友可以先看一看。

在服務器端把需要存儲表情emoji字符的字段改用utf8mb4字符集:

ALTER TABLE mytable MODIFY COLUMN myfiled varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

客戶端

客戶端需要把連接的字符集設定為utf8mb4。

設置如下:

set names utf8mb4;

使用的是阿里開源的druid datasource,它有一個屬性connectionInitSqls,它用來設置物理連接初始化的時候執行的sql。所以我們可以使用connectionInitSqls來初始化連接。

Spring配置如下:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本屬性 url、user、password --> <property name="url" value="jdbc:mysql://localhost:3888/majing?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" /> <property name="username" value="dbusername"/> <property name="password" value="dbpasswod"/> <property name="connectionInitSqls" value="set names utf8mb4;" /> <!-- 其他配置 --></bean>

其他的數據庫連接池如dbcp2,HikariCP都有connectionInitSqls屬性。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武鸣县| 康保县| 手游| 莱阳市| 尼勒克县| 长治县| 常山县| 甘南县| 东源县| 高尔夫| 虎林市| 东宁县| 武宣县| 公主岭市| 沐川县| 峨山| 咸阳市| 曲阳县| 涞源县| 宜君县| 微山县| 北京市| 昆明市| 资中县| 惠州市| 阿城市| 永州市| 汉寿县| 锡林浩特市| 寻乌县| 深泽县| 灵山县| 息烽县| 罗城| 庆安县| 防城港市| 台东市| 彰化市| 鹤壁市| 修水县| 纳雍县|