问题描述
学习mybatis过程中,前一次是直接在mybatis-config.xml文件中写dataSource的driver、url、username、password的,还能操作中文,这次加入jdbc.properties文件后,直接将几个value复制到jdbc.properties中,但是发现插入和修改中文时在mysql中显示为??
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=false
jdbc.username=root
jdbc.password=123456
原因分析:
在mysql中查看了数据库编码,发现没有问题,是utf8,又试了在mysql终端插入和更改中文,均无问题,所以,想到是数据源的问题
mysql> show variables like 'character_set_database';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| character_set_database | utf8 |
+------------------------+-------+
1 row in set, 1 warning (0.00 sec)
解决方案:
原因:我是直接把dataSource的driver、url、username、password复制到jdbc.properties中的,其中含有
&
是xml里面的转义字符,在jdbc.properties文件中不能使用直接使用&
就好了。正确配置为
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8&useSSL=false
jdbc.username=root
jdbc.password=134161