EMoji表情 Java+Mysql 存储

具体修改方式网上都有,

背景:我们的数据库是5.6+版本,如果5.7+版本的话,mysql connector只要高于 5.1.34 及以上就性了

而我们只能指定 mysql connector5.1.13 这个 jdbc connector版本,才能做到在5.6+的数据库情况下存入emoji表情

 低版本的不支持utf8mb4

高版本的修复了bug  需要db的 character-set-server是 utf8mb4

这个版本刚好是默认用utf8mb4连。


前端接口请求:




数据库中存储后形式为:



返回:



如何支持utf8mb4字符集?druid连接池池中的一个参数connectionInitSqls该如何在zebra中对应或者处理?

A1: 检查连接mysql的版本 如果是mysql5.7或mysqlserver的collation_serverutf8_general_ci,将mysql-connector-java升级到5.1.33及以上版本后可以直接支持。

A2: 一般情况下,业务方在使用这个参数时,都是设置编码方式:"set names utf8mb4"。要求mysql-connector-java要在5.1.20以上,poolType不能是c3p0,其他的类型都能支持,这里以Druid为例

connectionInitSqls:物理连接初始化的时候执行的sql

  <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="driverClassName" value="${jdbc-driver}"/>
        <property name="url" value="${jdbc-url}"/>
        <property name="username" value="${jdbc-user}"/>
        <property name="password" value="${jdbc-password}"/>
        <property name="filters" value="stat"/>
        <property name="maxActive" value="20"/>
        <property name="initialSize" value="1"/>
        <property name="maxWait" value="60000"/>
        <property name="minIdle" value="1"/>
        <property name="timeBetweenEvictionRunsMillis" value="3000"/>
        <property name="minEvictableIdleTimeMillis" value="300000"/>
        <property name="validationQuery" value="SELECT 'x'"/>
        <property name="testWhileIdle" value="true"/>
        <property name="testOnBorrow" value="false"/>
        <property name="testOnReturn" value="false"/>
        <property name="poolPreparedStatements" value="true"/>
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20"/>
        <property name="connectionInitSqls" value="set names utf8mb4"/>
    </bean>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值