近日跟朋友一块儿创建一个项目,用的是spring+mybatis+mysql。mysql
今天碰到一个mybatis向mysql中插入数据时,中文显示为'???'的问题,拿出来讲下。spring
对于数据库操做中出现的中文乱码,通常有两种状况:sql
对于第一种状况,能够查看自身的mysql设置:数据库
show variables like '%character%'
个人问题是第二种状况,须要在mybatis的配置文件中设置, 以前个人链接字段是: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&characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value=""/> </bean>
能够看到在链接的url后添加了useUnicode和characterEncoding的值,设定为utf-8.url
这里有一点须要注意的是,在xml配置文件中,须要将'&'符号转义,因此这里要写成'&'。spa
若是是在配置文件中,则没法转义,应为: xxxx.jdbc.url=jdbc:mysql://127.0.0.1:8080:3306/uct?useUnicode=true&characterEncoding=UTF-8 code