自学-谷粒学院项目
p30 在做模糊查询时,wrapper.like的方法没有查询出数据,在使用
swagger-ui中查询发现其他的组合查询都能生效,但是唯独name这个字段加上什么也查询不出来,于是我将传入的数值进行输出
发现传入的数值后台是接收得到的,但是没有查询出数据。
查询成功但是没有数据,于是到数据库查看编码
SHOW VARIABLES LIKE ‘%character%’;
发现不是utf-8,于是设置数据库编码
SET character_set_server=utf8;
然后再运行查询,发现仍然没有数据。
之后加上性能插件查看执行的语句
/**
* SQL 执行性能分析插件
* 开发环境使用,线上不推荐。 maxTime 指的是 sql 最大执行时长
* 三种环境:
* dev:开发环境
* test:测试环境
* prod:生产环境(已经部署好发布的)
*/
@Bean
@Profile({"dev","test"})// 设置 dev test 环境开启 对开发和测试生效
public PerformanceInterceptor performanceInterceptor() {
PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
performanceInterceptor.setMaxTime(200);//ms,超过此处设置的ms则sql不执行
performanceInterceptor.setFormat(true);
return performanceInterceptor;
}
运行后发现前端传来的字符到后端变成了乱码
所以查询不出结果,编码问题,最后在配置文件中加上characterEncoding=UTF-8就好了
spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8&characterEncoding=UTF-8
最后执行输出