QuertWrapper and 和or 用法

1.使用 MyBatis Plus 实现上述 SQL 查询条件可以按照以下步骤进行:

复制代码
创建一个 QueryWrapper 对象:
java 复制代码
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
复制代码
使用 eq 方法添加等于条件和 and 条件:
java 复制代码
queryWrapper.eq("age", 18)
            .eq("name", "张三")
            .and(wrapper -> wrapper.eq("sex", "男").or().eq("sex", "女"));
复制代码
执行查询操作:
java 复制代码
List<Entity> result = entityMapper.selectList(queryWrapper);

完整示例代码如下:

java 复制代码
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 18)
            .eq("name", "张三")
            .and(wrapper -> wrapper.eq("sex", "男").or().eq("sex", "女"));

List<Entity> result = entityMapper.selectList(queryWrapper);

在上述示例中,我们首先创建了一个 QueryWrapper 对象,并使用 eq 方法添加了两个等于条件。然后使用 and 方法添加了一个 and 条件,其中嵌套了一个 or 条件。

最后,我们使用 entityMapper 的 selectList 方法执行查询操作,并将查询结果存储在 result 变量中。

2.在 MyBatis Plus 中,可以使用 QueryWrapper 来构建 SQL 查询条件,包括 and 和 or 的逻辑关系。下面是一些示例代码,演示了如何在 MyBatis Plus 中使用 and 和 or:

java 复制代码
QueryWrapper<MessageAudit> queryWrapper = new QueryWrapper<>();

queryWrapper.eq("status", 1)  // 添加等于条件 status = 1
    .and(i -> i.eq("type", "email").or().eq("type", "sms"))  // 添加 and 条件 type = 'email' or type = 'sms'
    .or(i -> i.between("create_time", "2023-01-01", "2023-12-31").or().isNull("create_user_id"));  // 添加 or 条件 create_time between '2023-01-01' and '2023-12-31' or create_user_id is null

在上面的示例中,我们首先创建了一个 QueryWrapper 对象,并使用 eq 方法添加了一个等于条件。接着使用 and 方法添加了一个 and 条件,其中嵌套了一个 or 条件。最后使用 or 方法添加了一个 or 条件,其中嵌套了两个条件:一个是使用 between 方法表示时间范围条件,另一个是使用 isNull 方法表示字段为空条件。

相关推荐
小伍_Five10 分钟前
spark数据处理练习题番外篇【下】
java·大数据·spark·scala
qqxhb16 分钟前
零基础设计模式——行为型模式 - 中介者模式
java·设计模式·go·中介者模式
forestsea25 分钟前
Maven 多仓库治理与发布策略深度实践
java·maven
陌殇殇33 分钟前
Hadoop 003 — JAVA操作MapReduce入门案例
java·hadoop·mapreduce
march of Time36 分钟前
图数据库介绍及应用,go和Java使用图数据库
java·数据库·golang
CodeCraft Studio39 分钟前
PDF处理控件Aspose.PDF教程: 在 Java 中编辑 PDF 页面大小
java·pdf·aspose·aspose.pdf
异常君39 分钟前
Redis String 类型的底层实现与性能优化
java·redis·性能优化
白总Server43 分钟前
Golang实现分布式Masscan任务调度系统
java·运维·服务器·开发语言·分布式·后端·golang
A22741 小时前
自定义线程池 4.0
java·线程池
康小庄1 小时前
AQS独占模式——资源获取和释放源码分析
java·开发语言·jvm·spring boot·spring·spring cloud·nio