BitZ2 2024-06-17 17:20 采纳率: 50%
浏览 13
已结题

QueryWrapper含数组的多条件查询

QueryWrapper query = Wrappers.query(requestVO);

    if(requestVO.getArry() != null && StringUtils.isBlank(requestVO.getTime())) {
        query.between("Date_Time", requestVO.getSelectTime()[0], requestVO.getSelectTime()[1]);
    }

    return R.ok(tempService.page(page, query));

一个分页查询的接口,VO里的selectTime是一个String[]数组,这样写只能按这个时间查询,其他条件就不行了,如何改成可以满足多条件查询呢?

  • 写回答

4条回答 默认 最新

  • 阿里嘎多学长 2024-06-17 17:20
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    在Java Spring Boot项目中使用QueryWrapper进行多条件查询是一种常见的需求。QueryWrapper提供了丰富的API来构建复杂的查询条件。以下是如何扩展你的代码以满足多条件查询的示例:

    import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
    import org.apache.commons.lang3.StringUtils;
    
    // 假设 TempService 和 TempVO 已经定义好
    public R pageQuery(@RequestBody TempRequestVO requestVO) {
        QueryWrapper<Temp> query = new QueryWrapper<>();
    
        // 首先检查时间数组是否非空且时间字段不为空
        if (requestVO.getArry() != null && requestVO.getSelectTime() != null) {
            // 假设 selectTime 是一个包含两个元素的数组,分别代表时间范围的开始和结束
            query.between("date_time", requestVO.getSelectTime()[0], requestVO.getSelectTime()[1]);
        }
    
        // 检查其他条件,例如某个字段是否非空
        if (StringUtils.isNotBlank(requestVO.getSomeField())) {
            query.eq("some_field", requestVO.getSomeField());
        }
    
        // 可以继续添加更多的条件,例如 like 条件
        if (StringUtils.isNotBlank(requestVO.getAnotherField())) {
            query.like("another_field", requestVO.getAnotherField());
        }
    
        // 构建分页查询
        Page<Temp> page = new Page<>(requestVO.getPageNum(), requestVO.getPageSize());
        page = tempService.page(page, query);
    
        return R.ok(page);
    }
    

    在上面的代码中,我们首先创建了一个QueryWrapper实例,并根据条件添加了时间范围查询。然后,我们检查了其他可能的条件,例如某个字段是否非空,并相应地添加了查询条件。使用eq方法添加了等于条件,使用like方法添加了模糊匹配条件。你可以根据自己的需求继续添加更多的条件。

    最后,我们使用Page对象进行分页查询,并将查询结果封装在R.ok响应中返回。

    请注意,你需要根据你的实体类和字段调整字段名称和查询逻辑。此外,确保你的TempRequestVO类中有正确的属性和getter方法,以便能够正确地从请求体中获取参数。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月22日
  • 修改了问题 6月17日
  • 创建了问题 6月17日

悬赏问题

  • ¥15 地图软件开发技术答疑(api, 地点获取,外观样式)
  • ¥20 物理远程控制麦克风使用问题
  • ¥15 打印预览会泄漏纸钱包密码吗
  • ¥15 在hololens1上运行unity项目只有空窗口
  • ¥25 TABLEAU PREP无法打开
  • ¥15 百度帐号问题/centos
  • ¥15 关于#c语言#的问题:求完整代码条件好说
  • ¥100 HALCON DELPHI
  • ¥15 (需要远程,AI不回)VB6二进制文件转换成功,但是C#转换总是失败
  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)