mybatisplus 多条件and 、or 组合查询 (...and ...) or (...and ...)

mybatis-plus 中 queryWrapper and与or嵌套

(…and …) or (…and …) 格式

 QueryWrapper<entity> query = new QueryWrapper<>();
  query.and(wrapper->wrapper.eq("SEND_USER_ID",sendUserId).eq("RECEIVE_USER_ID",receiveUserId))
            .or(wrapper->wrapper.eq("SEND_USER_ID",receiveUserId).eq("RECEIVE_USER_ID",sendUserId));

效果
在这里插入图片描述
sql: 条件组成

WHERE ((SEND_USER_ID = ? AND RECEIVE_USER_ID = ?) OR (SEND_USER_ID = ? AND RECEIVE_USER_ID = ?))
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatisPlus中的Wrapper和select()方法详解》 在MyBatisPlus(MBP)中,Wrapper是一个强大的工具类,用于简化数据查询操作,特别是当我们需要动态构建SQL语句时。`wrapper.select()`方法是MBP中最常用的查询方法之一,用于执行数据库的选择(SELECT)操作。 **wrapper.select()方法介绍:** 1. **基础用法:** `List<T> result = MyMapper.selectList(wrapper);` 这里,`MyMapper`是你自定义的Mapper接口,`T`是实体类类型。`wrapper`是一个`BaseWrapper`对象,你可以通过调用其各种方法添加条件、排序、分页等,最终构造出完整的查询语句。 2. **动态构建查询条件:** 使用`eq`, `like`, `ne`, `gt`, `lt`等方法来设置查询条件。例如,`wrapper.eq("field", value)`表示"field"字段等于"value"。 3. **逻辑运算符:** 支持`and`, `or`, `notEqual`, `greaterThan`, `lessThan`等,用于组合多个条件,如`wrapper.eq("field1", value).and(gt("field2", otherValue))`。 4. **排序与分页:** 可以设置`orderBy`指定排序,`limit(page, size)`进行分页,例如`wrapper.orderByDesc("create_time").limit(10, 20)`。 5. **返回结果集:** `selectList()`会返回一个封装了查询结果的List对象,可以直接遍历获取数据。 **相关问题--:** 1. 如何在MyBatisPlus中利用Wrapper进行更复杂的查询操作? 2. Wrapper提供的高级功能如何提高代码的可维护性和灵活性? 3. wrapper.select()与其他查询方法(如selectById, selectOne等)有何不同?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值