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

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

true ini map() lte alter chan tor created lec

日常工作中經常會遇到需要數據庫能夠兼容 生僻字、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圖標啦。

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