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

首頁 > 數據庫 > MySQL > 正文

MySQL存儲表情時報錯:java.sql.SQLException: Incorrect string value:‘

2024-07-24 12:50:21
字體:
來源:轉載
供稿:網友

前言

本文主要介紹了關于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屬性。

總結

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

您可能感興趣的文章:

使MySQL能夠存儲emoji表情字符的設置教程MySQL插入emoji表情失敗問題的解決方法讓Java后臺MySQL數據庫能夠支持emoji表情的方法
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 常山县| 新巴尔虎右旗| 淅川县| 如东县| 玉环县| 龙口市| 津南区| 夏津县| 岳阳市| 岑巩县| 忻城县| 铜鼓县| 勃利县| 文化| 房产| 延长县| 木兰县| 从化市| 桃园县| 诸暨市| 乌兰察布市| 西藏| 历史| 苗栗县| 曲松县| 丹阳市| 右玉县| 德化县| 南木林县| 马龙县| 苍梧县| 昆山市| 永昌县| 海原县| 上栗县| 蚌埠市| 上栗县| 西贡区| 靖边县| 邹平县| 台中县|