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 方法表示字段为空条件。

相关推荐
野犬寒鸦21 分钟前
从零起步学习并发编程 || 第六章:ReentrantLock与synchronized 的辨析及运用
java·服务器·数据库·后端·学习·算法
wenzhangli721 分钟前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
HalvmånEver23 分钟前
Linux:线程互斥
java·linux·运维
rainbow688930 分钟前
深入解析C++STL:map与set底层奥秘
java·数据结构·算法
灵感菇_35 分钟前
Java 锁机制全面解析
java·开发语言
indexsunny35 分钟前
互联网大厂Java面试实战:Spring Boot微服务在电商场景中的应用与挑战
java·spring boot·redis·微服务·kafka·spring security·电商
娇娇乔木1 小时前
模块十一--接口/抽象方法/多态--尚硅谷Javase笔记总结
java·开发语言
saber_andlibert1 小时前
TCMalloc底层实现
java·前端·网络
wangjialelele1 小时前
平衡二叉搜索树:AVL树和红黑树
java·c语言·开发语言·数据结构·c++·算法·深度优先
m0_481147331 小时前
拦截器跟过滤器的区别?拦截器需要注册吗?过滤器需要注册吗?
java