近日跟朋友一起建立一个项目,用的是spring+mybatis+mysql。
今天碰到一个mybatis向mysql中插入数据时,中文显示为'???'的问题,拿出来说下。
对于数据库操作中出现的中文乱码,一般有两种情况:
数据库本身设置
连接数据库时,jdbc的编码设置
对于第一种情况,可以查看自身的mysql设置:
show variables like '%character%'
我的问题是第二种情况,需要在mybatis的配置文件中设置, 之前我的连接字段是:
修改后为:
可以看到在连接的url后添加了useUnicode和characterEncoding的值,设定为utf-8.
这里有一点需要注意的是,在xml配置文件中,需要将'&'符号转义,所以这里要写成'&'。
如果是在配置文件中,则无法转义,应为:xxxx.jdbc.url=jdbc:mysql://127.0.0.1:8080:3306/uct?useUnicode=true&characterEncoding=UTF-8