国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 靖宇县| 肇州县| 靖西县| 通州市| 正阳县| 渑池县| 库车县| 洞头县| 商都县| 武胜县| 东乡县| 休宁县| 方城县| 修水县| 阜阳市| 弥勒县| 香河县| 襄城县| 巴东县| 株洲县| 台北市| 东平县| 故城县| 堆龙德庆县| 东乡| 丹江口市| 平邑县| 丹阳市| 剑阁县| 新疆| 岳普湖县| 赫章县| 宽甸| 泊头市| 建德市| 鄢陵县| 苗栗市| 中牟县| 遵化市| 霍州市| 黄山市|