今天在写代码的时候突然发现以下的问题:真是让我很是奇怪,就是为什么数据库中有数据,而且我是把控制台打印的sql复制到Navicat中去执行的,所以应该不会存在问题,那么是什么原因,导致代码中查不出来数据呢?
因为是公司的项目,所以我试了下其它的功能发现查询都是有数据的,但是发现那些查询条件不是中文,所以我就开始想,是不是配置文件中没有配置utf-8。
idea控制台打印的sql:
Preparing: SELECT COUNT(id) FROM user WHERE name = ?
Parameters: 杨建(String)
从Navicat中截图可以看出这是有数据的(杨建这个人在user表中是存在的):
代码部分截图:
也就是说这么简单的sql,肯定是可以查出来数据的,但是为什么查不到呢,我找到半天,试了很多种条件查询,就一个name作为条件而已,这么简单,应该也不至于会出问题,后来开始转换思路,一条路走不通,不能一条路走到死。
后来想想MySQL的配置文件对不对?
spring:
datasource:
url: jdbc:mysql://192.168.160.129:3306/znbt
username: root
password: 123456
这样肯定不行,我改了下:(这里我就想吐槽了,之前公司的项目这段配置是有的,不知道哪个崽子删了又提交了,我后面改了提交了,这次又被改回来了)
url: jdbc:mysql://192.168.160.129:3306/znbt?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf8&serverTimezone=UTC
就这样再去debug代码,发现已经有值了。