‌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 官方文档

相关推荐
心之伊始3 小时前
Netty线程模型与Tomcat线程模型对比分析
java·开发语言
Super Rookie3 小时前
Tomcat 自动化脚本安装方案
运维·tomcat·自动化
Mu.3873 小时前
初始Spring
java·数据库·spring
葡萄城技术团队3 小时前
突破Excel局限!SpreadJS让电子表格“活”起来
java·数据库·excel
吹个口哨写代码3 小时前
处理文本编辑器存的json格式报错问题,对编辑器存的字段进行转换处理,再通过json返回
java·编辑器·json
阿挥的编程日记3 小时前
基于SpringBoot的影评管理系统
java·spring boot·后端
Chloeis Syntax3 小时前
栈和队列笔记2025-10-12
java·数据结构·笔记·
java坤坤4 小时前
Spring Boot 集成 SpringDoc OpenAPI(Swagger)实战:从配置到接口文档落地
java·spring boot·后端
Uluoyu4 小时前
word、pdf文档内容提取工具类
java·pdf·word