在使用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
注意:加的编码要和你数据库使用的编码一样
重启服务进行测试,通过填写筛选条件,结果如下:
通过模糊查询成功获取数据。