使用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

注意:加的编码要和你数据库使用的编码一样

重启服务进行测试,通过填写筛选条件,结果如下: 通过模糊查询成功获取数据。

经验分享 程序员 微信小程序 职场和发展