Mybatis Plus 实现一个搜索框,模糊查询多个表字段

最近在学习敲项目的时候遇到了一个问题:

在一个搜索框中输入一个字段,在数据库表中的多个列数据中进行模糊查询

之前跟着视频敲的时候没发现这个bug,测试的时候发现跟着视频敲的只能实现用户名的单模糊查询,如果输入姓名或者手机号就查不到数据

在这里插入图片描述

排查顺序:

从后端开始排查,用knife4j进行的接口测试

在这里插入图片描述

测试结果和在前端发起请求时的错误一样,通过用户名可以查询的到,通过姓名和电话查询不到

这里得出结论,后端的接口没有写好

代码截图如下,这里只进行了username的模糊查询

在这里插入图片描述

把缺失的条件加上就可以解决了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v5kXzKpZ-1689914892391)(C:\Users\32034\AppData\Roaming\Typora\typora-user-images\image-20230721124446144.png)]

我这里用的是LambdaQueryWrapper,所以like的条件里面使用的是Lambda表达式的写法,like的参数是一样的

like(数据库列名,模糊查询的值)

代码:

wrapper.like(SysUser::getUsername,keyword)
        .or().like(SysUser::getName,keyword)
        .or().like(SysUser::getPhone,keyword);
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐