SpringBootmybatisDruid结合使用存储emoji图标
Posted 田野里的放牛娃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBootmybatisDruid结合使用存储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图标啦。
以上是关于SpringBootmybatisDruid结合使用存储emoji图标的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Testcontainers 与 @DataJpaTest 结合使用以避免代码重复?
Apache与PHP的结合使主机访问linux80端口的方法