SpringBoot、mybatis、Druid結合使用存儲emoji圖標


日常工作中經常會遇到需要數據庫能夠兼容 生僻字、emoji 的需求。

解決這中問題的辦法一共有兩步:1.修改字段的字符集為 utf8mb4 

                     2.程序兼容生僻字或者 emoji

 

1、修改字符集

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

2、修改程序

這里需要提前說明一點,SpringBoot默認使用的是tomcat數據源,要使用druid數據源,必須自己重寫數據源配置。配置emoji關鍵點在於數據庫鏈接中的 initConnectionSqls屬性;

如下配置:

    public DataSource dataSource() throws Exception {
        DataSourceProperties properties = loanDataSourceProperties();
        Map<String, Object> map = Maps.newHashMap();
        map.put("url", properties.getUrl());
        map.put("driverClassName", properties.getDriverClassName());
        map.put("username", properties.getUsername());
        map.put("password", properties.getPassword());
        map.put("initialSize", "1");
        map.put("maxActive", "20");
        map.put("maxWait", "60000");
        map.put("timeBetweenEvictionRunsMillis", "60000");
        map.put("validationQuery", "SELECT 'x'");
        map.put("testWhileIdle", "true");
        map.put("testOnBorrow", "false");
        map.put("testOnReturn", "false");
        map.put("poolPreparedStatements", "false");
        map.put("initConnectionSqls","SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;");
        DataSource dataSource = DruidDataSourceFactory.createDataSource(map);
        return dataSource;
    }

自此,我們的程序里就能夠使用emoji圖標啦。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM