转载:https://blog.csdn.net/gwd1154978352/article/details/72583731
最近在写代码的过程中发现这么一个问题:使用mybatis查询数据库是涉及到中文的时候查询不到结果(如下图所示),但是在数据库中能够查询到(用的是mysql)。
mysql数据库中文问题可以看我的这篇博客 解决:mysql数据库中文显示错误
数据库内查询结果:
看了网上解决此问题的帖子不多,而且多为“吹牛皮扯淡”,今天刚好解决了,就和大家分享一下
要解决这个问题很简单,只需要在配置jdbc.properties时在jdbcURL后增加参数useUnicode=true&characterEncoding=UTF-8来指定编码格式即可,两者之间用“?”相连
完美解决:
=======================================================================
我的问题使用本地mysql数据库,使用mybatis 查询中文不会出现该问题。但是一旦是线上数据库查询中文就会出现查询不到,
记得当初就解决过这个问题,当时好像修改了线上mysql的编码方式,后来还是在连接mysql的时候配置成了useUnicode=true&characterEncoding=UTF-8 才解决此问题。
springboot 的 application.properties
## 设置数据源
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/qgjw_xmhy?useSSL=false&useUnicode=true&characterEncoding=UTF-8
spring.datasource.username = root
spring.datasource.password = 111
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
jdbc:mysql://127.0.0.1:3306/qgjw_xmhy?useSSL=false&useUnicode=true&characterEncoding=UTF-8