網上搜到了很多關於這個問題的解決辦法,但是都沒解決我的問題。我的mysql用的是windows版mysql-server 5.7
首先我按照基本方法,修改my.inf配置文件,添加下面配置:
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
設置數據表字段字符集爲utf8mb4 :
ALTER TABLE t_member MODIFY name VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
設置表字符集爲utf8mb4
ALTER TABLE t_member CHARSET=utf8mb4;
設置數據庫字符集爲utf8mb4
SET NAMES utf8mb4
然後重啓mysql,發現還是不行
然後在mybatis xml文件的insert、update語句中加上:SET NAMES utf8mb4
<update id="update">
set names utf8mb4;
UPDATE t_member SET
phone = #{phone},
wxid = #{wxid},
token = #{token},
status = #{status},
adtime = #{adtime},
isnew = #{isnew},
icon = #{icon},
name = #{name},
isbind = #{isbind},
sign = #{sign}
WHERE id = #{id}
</update>
發現這樣加會報sql錯誤
去掉後在每個使用update、insert語句的代碼前加上執行set names utf8mb4 sql語句
memberService.executeUpdateSql("set names utf8mb4");
memberService.save(_member);
然後就可以了