SpringBoot、mybatis、Druid結合使用儲存emoji圖示
阿新 • • 發佈:2018-11-23
日常工作中經常會遇到需要資料庫能夠相容 生僻字、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) CHARACTERSET 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圖示啦。