当前位置: 首页 > news >正文

Mybatis PLUS查询对List使用OR模糊查询

Mybatis PLUS查询对List使用OR模糊查询

  • 1、版本
  • 2、代码
  • 3、效果

1、版本

Mybatis PLUS版本:3.5.7

注意:版本3.1.2及以下是需要return的

  • 因当前为高版本,代码中已将 return 注释。

2、代码

QueryWrapper<Object> queryWrapper = new QueryWrapper<>();
List<String> values = Arrays.asList("1","2");
queryWrapper.and(values != null && values.size() > 0, qw -> {values.forEach(var -> {if(var != null && !"".equals(var)){qw.or(sub -> sub.like("id", var));}});//return qw;
});

如需要封装,代码如下:

package com;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import java.util.List;public class MyLambdaQueryWrapper<T> extends LambdaQueryWrapper<T> {public MyLambdaQueryWrapper<T> andOrLikePresent(SFunction<T, ?> column, List<?> values) {if(null == values){return this;}super.and(values != null && values.size() > 0, qw -> {values.forEach(var -> {if(var != null && !"".equals(var)){qw.or(sub -> sub.like(column, var));}});//return qw;});return this;}}

使用如下:

MyLambdaQueryWrapper<Object> wrapper = new MyLambdaQueryWrapper<>();
wrapper.andOrLikePresent(Object::getID, Arrays.asList("1","2"));
  • 当前版本Maven配置
<!-- mybatisPlus -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version>
</dependency>
<!-- 代码生成器 -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId> <version>3.5.7</version>
</dependency>
<!-- MyBatis 联表查询 -->
<dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join-boot-starter</artifactId><version>1.4.10</version>
</dependency>

3、效果

SELECTidaccount,name,status
FROMt_user
WHEREstatus = '1'and ((( name like '%张三%')or ( name like '%李四%')or ( name like '%王五%')));

多个List模糊查询

SELECTidaccount,name,status
FROMt_user
WHEREstatus = '1'and ((( account like '%zhang%')or ( account like '%li%')or ( account like '%wang%'))and (( name like '%张三%')or ( name like '%李四%')or ( name like '%王五%')));

OK,就这些吧。
有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺

参考链接:
https://www.cnblogs.com/lboke/p/17146689.html

http://www.lryc.cn/news/493673.html

相关文章:

  • Debezium日常分享系列之:Debezium Engine
  • I.MX6U 裸机开发20. DDR3 内存知识
  • 【R安装】VSCODE安装及R语言环境配置
  • ES更新问题 Failed to close the XContentBuilder异常
  • svn-git下载
  • 10个Word自动化办公脚本
  • Paddle Inference部署推理(十八)
  • Redis开发02:redis.windows-service.conf 默认配置文件解析与注解
  • redis大key和热key
  • Dubbo 最基础的 RPC 应用(使用 ZooKeeper)
  • 科技赋能:企业如何通过新技术提升竞争力的策略与实践
  • 从0开始深度学习(33)——循环神经网络的简洁实现
  • 【FAQ】HarmonyOS SDK 闭源开放能力 — 公共模块
  • 百度 文心一言 vs 阿里 通义千问 哪个好?
  • 内网不出网上线cs
  • ubuntu22开机自动登陆和开机自动运行google浏览器自动打开网页
  • 企业建站高性能的内容管理系统
  • 【爬虫框架:feapder,管理系统 feaplat】
  • faiss库中ivf-sq(ScalarQuantizer,标量量化)代码解读-5
  • 代码随想录算法训练营第六十天|Day60 图论
  • 在嵌入式Linux下如何用QT开发UI
  • 【JavaScript】Promise详解
  • 1062 Talent and Virtue
  • C++《二叉搜索树》
  • 机器学习-神经网络(BP神经网络前向和反向传播推导)
  • 基于智能物联网关的车辆超重AI检测应用
  • 记录pbootcms提示:登录失败:表单提交校验失败,请刷新后重试的解决办法
  • 【JavaScript】同步异步详解
  • vue 使用el-button 如何实现多个button 单选
  • HarmonyOS-初级(二)