大家在项目开发中,一般用的是spring+mybatis+mysql的架构,经常碰到的一个问题是:mybatis向mysql中插入数据时,中文显示为'???'。
对于数据库操作中出现的中文乱码,一般有两种情况:
(1)数据库本身设置
(2)连接数据库时,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配置文件中,需要将'&'符号转义,所以这里要写成'&'。

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

补充:https://www.cnblogs.com/winner-0715/p/5936381.html

标签: none

《2019年收徒公告》限时优惠中,报名请移步:>>>>>>

《MyBatis知识社群》计划招30名用户免费体验知识社群,感兴趣请移步:>>>>>>

仅有一条评论

  1. lisir lisir

    1.这里有一点需要注意的是,在xml配置文件中,需要将'&'符号转义,所以这里要写成'&'。后面的这个‘&’要改成‘&’;
    2.最后,说明一点:如果是在配置文件中,则无法转义,应为: xxxx.jdbc.url=jdbc:mysql://127.0.0.1:8080:3306/uct?useUnicode=true&characterEncoding=UTF-8 ;
    这句话中,“则无法转义”应该改为“则不用转义”吧;
    以上两点都是描述性错误

添加新评论