1. 程式人生 > >SpringBoot、mybatis、Druid結合使用儲存emoji圖示

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圖示啦。