Mybatis-plus查询语句加括号(.or(),.and())问题

 更新时间:2025年04月21日 09:02:24   作者:叶梓啊  
这篇文章主要介绍了Mybatis-plus查询语句加括号(.or(),.and())问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Mybatis-plus查询语句加括号(.or(),.and())

java代码

QueryWrapper<Entity> wrapper = new QueryWrapper<>();
wrapper.ne("id", param.getId())
wrapper.and(QueryWrapper -> QueryWrapper.eq("name", name).or().eq("mark", mark)); 
entityMapper.selectList(wrapper);

等价sql

SELECT id FROM t_entity WHERE (id <> ? AND (name = ? OR mark = ?))

每个and相当于一个括号

mybatis plus加括号实现分端查询

LambdaQueryWrapper<实体类> wrapper = new LambdaQueryWrapper<>();
  • wrapper.eq(实体类::字段名,参数)
  • .and(条件,pr -> pr.like(实体类::字段名,参数)
  • .or(条件).like(实体类::字段名,参数));

举例

LambdaQueryWrapper<Entity> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.eq(Entity::getStatus, BaseServiceConstants.STATUS_0)
        .like(StringUtils.isNotEmpty(busiInfo.getName()) && !appFlag, Entity::getName, busiInfo.getName())
        .like(StringUtils.isNotEmpty(busiInfo.getSupervisor()) && !appFlag, Entity::getSupervisor, busiInfo.getSupervisor())
        .eq(StringUtils.isNotEmpty(busiInfo.getCode()), Entity::getCode, busiInfo.getCode())
        .and(StringUtils.isNotEmpty(busiInfo.getName()) && appFlag, pr -> pr .like( Entity::getName, busiInfo.getName())
                .or().like(Entity::getSupervisor, busiInfo.getName()));

通过定义boolean变量  appFlag 来区别查询来自PC还是APP端,APP端实现单一参数多对应查询

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringBoot中Get请求和POST请求接收参数示例详解

    SpringBoot中Get请求和POST请求接收参数示例详解

    文章详细介绍了SpringBoot中Get请求和POST请求的参数接收方式,包括方法形参接收参数、实体类接收参数、HttpServletRequest接收参数、@PathVariable接收参数、数组参数接收、集合参数接收、Map接收参数以及通过@RequestBody接收JSON格式的参数,感兴趣的朋友一起看看吧
    2024-12-12
  • SpringBoot 中使用 Validation 校验参数的方法详解

    SpringBoot 中使用 Validation 校验参数的方法详解

    Validation 是用于检查程序代码中参数的有效性的框架,作为 Spring 框架中的一个参数校验工具,集成在 spring-context 包中,这篇文章主要介绍了SpringBoot 中使用 Validation 校验参数,需要的朋友可以参考下
    2022-05-05
  • HTTP 415错误-Unsupported media type详解

    HTTP 415错误-Unsupported media type详解

    这篇文章主要介绍了HTTP 415错误-Unsupported media type详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • SpringBoot整合Redis之编写RedisConfig

    SpringBoot整合Redis之编写RedisConfig

    RedisConfig需要对redis提供的两个Template的序列化配置,所以本文为大家详细介绍了SpringBoot整合Redis如何编写RedisConfig,需要的可以参考下
    2022-06-06
  • SpringBoot Nacos实现自动刷新

    SpringBoot Nacos实现自动刷新

    这篇文章主要介绍了SpringBoot Nacos实现自动刷新,Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台
    2023-01-01
  • 你一定不知道的Java Unsafe用法详解

    你一定不知道的Java Unsafe用法详解

    Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,如直接访问系统内存资源、自主管理内存资源等,下面这篇文章主要给大家介绍了关于Java Unsafe用法的相关资料,需要的朋友可以参考下
    2021-10-10
  • maven打包成第三方jar包且把pom依赖包打入进来的方法

    maven打包成第三方jar包且把pom依赖包打入进来的方法

    这篇文章主要介绍了maven打包成第三方jar包且把pom依赖包打入进来的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Java中的substring()方法使用举例详解

    Java中的substring()方法使用举例详解

    这篇文章主要介绍了Java中的substring()方法使用的相关资料,文中包括其概述、参数、返回值、使用示例、注意事项、常见用法和总结,通过代码介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • Java中的Collections类的使用示例详解

    Java中的Collections类的使用示例详解

    Collections类提供了一些静态方法,这些方法能够对List集合实现常用的算法操作,这些算法是排序,填充,移位和查找等。本文将通过示例为大家详细讲讲Collections类的使用,需要的可以参考一下
    2022-12-12
  • SpringBoot整合任务系统quartz和SpringTask的方法

    SpringBoot整合任务系统quartz和SpringTask的方法

    这篇文章主要介绍了SpringBoot整合任务系统(quartz和SpringTask),Quartz是一个比较成熟了的定时任务框架,但是捏,它稍微的有些许繁琐,本文先给大家讲解下Quartz的一些基本概念结合实例代码给大家详细讲解,需要的朋友可以参考下
    2022-10-10

最新评论