Mybatis + Mysql 插入数据时中文乱码问题

Posted 浅秋随记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis + Mysql 插入数据时中文乱码问题相关的知识,希望对你有一定的参考价值。

近日跟朋友一起建立一个项目,用的是spring+mybatis+mysql

今天碰到一个mybatis向mysql中插入数据时,中文显示为‘???‘的问题,拿出来说下。

 

对于数据库操作中出现的中文乱码,一般有两种情况:

  • 数据库本身设置
  • 连接数据库时,jdbc的编码设置

对于第一种情况,可以查看自身的mysql设置:

show variables like ‘%character%‘

 

我的问题是第二种情况,需要在mybatis的配置文件中设置, 之前我的连接字段是:

技术分享图片
    <!-- 1. 数据源 : DriverManagerDataSource -->
    <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/uct"/>
        <property name="username" value="root"/>
        <property name="password" value=""/>
    </bean>
    
技术分享图片

修改后为:

技术分享图片
    <!-- 1. 数据源 : DriverManagerDataSource -->
    <bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/uct?useUnicode=true&amp;characterEncoding=utf-8"/>
        <property name="username" value="root"/>
        <property name="password" value=""/>
    </bean>
    
技术分享图片

可以看到在连接的url后添加了useUnicode和characterEncoding的值,设定为utf-8.

这里有一点需要注意的是,在xml配置文件中,需要将‘&‘符号转义,所以这里要写成‘&amp;‘。

 

如果是在配置文件中,则无法转义,应为: xxxx.jdbc.url=jdbc:mysql://127.0.0.1:8080:3306/uct?useUnicode=true&characterEncoding=UTF-8 

以上是关于Mybatis + Mysql 插入数据时中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章

web 项目:解决插入 MySQL 数据库时中文乱码问题

PHP向MySQL插入记录时中文乱码

PHP向MySQL插入记录时中文乱码

myeclipse连接mysql生成数据表时中文字符乱码或问号(解决方法)

win10在CMD操作MySQL时中文显示乱码

mysql中文乱码