使用mybatis-plus 进行like 查询查不出来值
在使用mybatis-plus中的like 查询不到值,经过断点调试确定没错,打出SQL日志如下:
==> Preparing: SELECT COUNT(1) FROM edu_teacher WHERE is_deleted = 0 AND teacher_name LIKE ? ==> Parameters: %王%(String) <== Columns: COUNT(1) <== Row: 0 ==> Preparing: SELECT id,teacher_name,intro,career,level,avatar,sort,is_deleted,gmt_create,gmt_modified FROM edu_teacher WHERE is_deleted=0 AND teacher_name LIKE ? ORDER BY id ASC ==> Parameters: %王%(String) <== Total: 0
将SQl语句复制出来,并在数据库中查询,是能正常查出数据的,如下:
通过排查发现是因为配置文件的数据库连接忘记加编码格式了 数据库使用的是utf-8所以在配置文件application.properties中添加编码格式即可。 添加前:
# mysql数据库连接 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456
添加后:
# mysql数据库连接 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8&characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=123456
注意:加的编码要和你数据库使用的编码一样
重启服务进行测试,通过填写筛选条件,结果如下: 通过模糊查询成功获取数据。