‌MyBatis-Plus 的 LambdaQueryWrapper 可以实现 OR 条件查询‌

在 MyBatis-Plus 中,LambdaQueryWrapper 提供了链式调用的方式来构建 SQL 查询条件,其中 or() 方法用于添加 OR 条件。以下是具体用法和示例:

1. 基本 OR 条件用法

使用 or() 方法可以将后续条件与前面的条件用 OR 连接:

复制代码
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.example.demo.entity.User;

public class Example {
    public static void main(String[] args) {
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(User::getName, "Alice")  // 条件1:name = 'Alice'
                   .or()
                   .eq(User::getName, "Bob");    // 条件2:OR name = 'Bob'
        
        // 生成的SQL:WHERE name = 'Alice' OR name = 'Bob'
    }
}

2. 嵌套 OR 条件

如果需要更复杂的 OR 嵌套,可以使用 nested() 方法配合 or()

复制代码
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getStatus, 1)
           .and(wrapper -> wrapper.eq(User::getName, "Alice")
                                 .or()
                                 .eq(User::getName, "Bob"));

// 生成的SQL:WHERE status = 1 AND (name = 'Alice' OR name = 'Bob')

3. 直接使用 or() 的链式调用

也可以通过多次调用 or() 实现多条件 OR:

复制代码
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getAge, 20)
           .or()
           .eq(User::getAge, 25)
           .or()
           .eq(User::getAge, 30);

// 生成的SQL:WHERE age = 20 OR age = 25 OR age = 30

关键点说明

  • ‌**or() 方法**‌:将后续条件与前一个条件用 OR 连接。
  • ‌**and() + nested()**‌:用于实现括号嵌套的逻辑组合。
  • Lambda 表达式 ‌:通过方法引用(如 User::getName)避免硬编码字段名,类型安全。

参考文档

MyBatis-Plus 官方文档对 LambdaQueryWrapper 的 OR 条件有详细说明,建议结合实际需求查阅:MyBatis-Plus 官方文档

相关推荐
步行cgn3 小时前
Spring c 命名空间注入详解
java·后端·spring
明月_清风4 小时前
Maven 到底是什么?一篇文章搞懂 Java 项目构建与依赖管理
java·后端·maven
aramae4 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
Rain的Java大神之路4 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog5 小时前
Java 接入Redis: 通用命令与键管理
java·服务器·redis
Wang's Blog5 小时前
Java 接入Redis: 列表集合与有序集合操作命令
java·服务器·redis
Ivanqhz6 小时前
SVD++算法
java·服务器·网络·深度学习·神经网络
qq_2518364576 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
caoerzhong7 小时前
JeeWMS 开源仓库管理系统全景解读:一套 Java WMS 如何把 WMS/OMS/BMS/TMS 装进同一个系统
java·开源
曹牧7 小时前
Java集合框架:List、ArrayList、Map 和 HashMap
java