首页 > 其他分享 >Mybatis PLUS查询对List使用OR模糊查询

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

时间:2024-11-26 15:00:53浏览次数:7  
标签:return like List 查询 values var PLUS com name

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

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、效果

SELECT
	id
	account,
	name,
	status
FROM
	t_user
WHERE
	status = '1'
	and ((( name like '%张三%')
	or ( name like '%李四%')
	or ( name like '%王五%')));
	

多个List模糊查询

SELECT
	id
	account,
	name,
	status
FROM
	t_user
WHERE
	status = '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

标签:return,like,List,查询,values,var,PLUS,com,name
From: https://blog.csdn.net/qq_38254635/article/details/144021982

相关文章

  • asp.net实现微信支付综合管理平台前端页面(支付、订单查询、退款、退款查询)
    <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index4V2.aspx.cs"Inherits="WXPayDemo.index4V2"%><!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat=&q......
  • 深入理解 SQL 中的多表查询——以员工信息查询为例
    深入理解SQL中的多表查询——以员工信息查询为例引言在数据库查询中,多表查询是常见的需求。通过多表查询,我们可以从多个表中获取相关联的数据,从而实现更复杂的数据分析和报表生成。本文将通过一个具体的案例,详细解释如何进行多表查询,并揭示一些常见的误区。数据库设计首先,我......
  • 深入理解 SQL 中的 `IN` 和 `BETWEEN` 操作符——以工资等级查询为例
    深入理解SQL中的IN和BETWEEN操作符——以工资等级查询为例引言在SQL查询中,IN和BETWEEN是两个常用的操作符,用于过滤数据。虽然它们都可以用于条件查询,但它们的逻辑和适用场景是不同的。本文将通过一个具体的例子,详细解释IN和BETWEEN的区别,并揭示它们在实际应用中......
  • GaussDB数据库SQL系列-层次递归查询
    一、前言层次递归查询是一种常见的SQL查询方式,特别是在一些层次化的数据存储结构中经常用到。本文主要以GaussDB数据库为实验平台,为大家讲解其使用方法。二、GuassDB数据库层次递归查询概念层次化结构可以理解为树状数据结构,由节点构成。举个简单的例子,如下图所示,由子节点向上......
  • MySQL 查询做了这些优化后,纵享丝滑…… 转载
    一、前言 在程序上线运行一段时间后,一旦数据量上去了,或多或少会感觉到系统出现延迟、卡顿等现象,出现这种问题,就需要程序员或架构师进行系统调优工作了。 其中,大量的实践经验表明,调优的手段尽管有很多,但涉及到SQL调优的内容仍然是非常重要的一环,本文将结合实例,总结一些工作中......
  • 工作学习笔记(十五)Mybatis-Plus项目中使用eq
    在今天的工作中遇到了一个问题,在这记录一下第一次使用eq()。方法作用它的主要作用是在构建SQL查询语句的条件部分时,添加一个等于的判断条件。例如,当你想从数据库表中查询出某一字段值等于特定值的记录时,就可以使用eq()方法来实现这个条件构建。方法语法及参数说明语法:......
  • 我只用9分钟做了一个5M不到的跨平台掘金桌面端程序,并且支持自动签到,感谢开源项目PakeP
    以上跨平台桌面端程序全都是我只花了9分钟左右的时间做出来的,而且还添加了自定义的功能支持,比如抖音的自动播放和直播抢购,移除YouTube一些广告等,都是支持的,还有掘金的自动签到功能,也仅仅只加载了一个脚本文件就实现了。能这么快实现主要还是归功于开源免费项目PakePlus的支持。......
  • MybatisPlus入门(十二)Mybatis-Plus 代码生成器
    一、代码生成器代码生成器:代码由定义的模版、读取数据库和开发者自定义部分组成。-模板:MyBatisPlus提供,Mabatis-Plus收集了大量开发者写的标准代码,定义了模版,也可以开发者自定义模版。-数据库相关配置:读取数据库获取信息-开发者自定义配置:手工配置实体对象类:代码如下pa......
  • MybatisPlus入门(十一)MybatisPlus-乐观锁
    一、乐观锁修改操作中的问题;乐观锁,琐是用来解决并发问题的。例如秒杀业务,上了100个秒杀单子,如果到了最后一个,8个人一起买,会出现问题,卖出第0号-1号-2号,小型并发解决方案:乐观锁。二、Mybatis-Plus乐观锁实现步骤Mybatis-Plus乐观锁实现步骤:步骤一......
  • SQL注入常用语句及一道有意思的题:[GYCTF2020]Blacklist
    SQL注入0x01:联合查询注入常用语句:/?id=1'and1'='2或/?id=1and1=2//判断是字符型注入还是数字型注入//下面以字符型为例/?id=1'unionselect1,2,3#//爆回显位/?id=1'unionselect1,2,database()#//爆数据库名/?id=1'unionselect1,2,group_concat(table_name)fr......