首页 > 其他分享 >QueryWrapper介绍、应用场景和示例代码

QueryWrapper介绍、应用场景和示例代码

时间:2024-09-11 14:52:03浏览次数:14  
标签:QueryWrapper 场景 name 示例 queryWrapper 查询 条件 排序

概述

QueryWrapper 是 MyBatis-Plus 提供的一个用于构建 SQL 查询条件的工具类。它简化了查询条件的构建,使得编写复杂的查询变得更加直观和简洁。

详细介绍

QueryWrapper 是 MyBatis-Plus 框架中的一个类,旨在帮助开发者构建动态 SQL 查询。它可以用来指定查询条件、排序、分页等。QueryWrapper 提供了丰富的 API,支持常见的 SQL 操作,如 WHERE 条件、排序、分组、联合查询等。

核心功能
  1. 条件构造:支持 eq, ne, gt, lt, like, between 等多种条件操作符。
  2. 排序:可以通过 orderByAsc, orderByDesc 来指定排序规则。
  3. 分页:虽然 QueryWrapper 本身不处理分页,但可以和 Page 对象结合使用来实现分页查询。
  4. 多条件组合:可以通过 and, or, nested 等方法实现复杂的查询逻辑。

应用场景

  • 动态查询:构建复杂的动态查询条件,适用于用户筛选条件不确定的场景。
  • 简化代码:减少手写 SQL 的复杂度,使得代码更加清晰易懂。
  • 快速开发:提高开发效率,减少维护成本。

示例代码

假设你有一个 User 实体类,包含 id, name, ageemail 等字段。你想要根据不同的查询条件进行用户查询。

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;

// 实体类
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
    // getters and setters
}

// Mapper 接口
public interface UserMapper extends BaseMapper<User> {
}

// Service 接口
public interface UserService extends IService<User> {
}

// Service 实现类
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    public List<User> findUsers(String name, Integer minAge, Integer maxAge) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        
        // 动态构建查询条件
        if (name != null) {
            queryWrapper.like("name", name);
        }
        if (minAge != null) {
            queryWrapper.ge("age", minAge);
        }
        if (maxAge != null) {
            queryWrapper.le("age", maxAge);
        }
        
        // 排序
        queryWrapper.orderByAsc("age");
        
        return list(queryWrapper);
    }
}

关键点说明

  • QueryWrapper 对象的创建:通过 new QueryWrapper<User>() 创建一个 QueryWrapper 实例。
  • 条件设置:使用 like, ge, le 等方法来设置查询条件。你可以使用其他方法,如 eq(等于),ne(不等于),gt(大于),lt(小于),between(在两个值之间),in(在某些值中)等。
  • 排序:通过 orderByAscorderByDesc 来指定排序字段和排序方式。
  • 动态条件:可以根据不同的业务逻辑动态地添加查询条件,使得代码更加灵活。

使用 QueryWrapper 可以有效地减少手写 SQL 的复杂性,同时保持代码的可读性和可维护性。

标签:QueryWrapper,场景,name,示例,queryWrapper,查询,条件,排序
From: https://blog.csdn.net/a_beiyo/article/details/141931709

相关文章

  • 谁还只会用OBS?多场景录制试试这四款!
    很多人在录屏的时候,尤其是打游戏的朋友,第一时间想到的都是OBS,其实除了这款工具,还有很多好用的第三方录屏工具,一样可以帮助我们录制出不卡顿的高清视频。今天,我们就来对比一下市面上四款热门的录屏软件,看看它们在录制电脑屏幕时的表现如何。一、福昕录屏大师网址:https://www.......
  • 基于SpringBoot的医院管理系统+LW示例参考
    系列文章目录1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例4.基于SSM的高校实验室管理系统+LW参考示例5.基于SpringBoot的二手数码回收系统+原生微信小......
  • 基于SSM的校园二手交易平台+LW示例参考
    系列文章目录1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例4.基于SSM的高校实验室管理系统+LW参考示例5.基于SpringBoot的二手数码回收系统+原生微信小......
  • 基于SpringBoot的校园跑腿系统+LW参考示例
    系列文章目录1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例4.基于SSM的高校实验室管理系统+LW参考示例5.基于SpringBoot的二手数码回收系统+原生微信小......
  • 【04】深度学习——训练的常见问题 | 过拟合欠拟合应对策略 | 过拟合欠拟合示例 | 正
    深度学习1.常见的分类问题1.1模型架构设计1.2万能近似定理1.3宽度or深度1.4过拟合问题1.5欠拟合问题1.6相互关系2.过拟合欠拟合应对策略2.1问题的本源2.2数据集大小的选择2.3数据增广2.4使用验证集2.5模型选择2.6K折交叉验证2.7提前终止3.过拟合欠拟合示例3.1导入库3.2......
  • Java数组篇[10]:数组的常见应用场景
    哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者,工作日常接触到最多的就是Jav......
  • 全面解析API接口的多种技术应用场景
    API接口的技术应用网站开发:网站开发API可以帮助网站开发者实现更多的功能,比如社交网站的信息分享、电商网站的支付交易、上传和下载等功能。物联网:在物联网领域,API也有着广泛的应用,比如物联网设备的远程控制和设备管理等功能。移动应用开发:移动应用程序开发API可以帮助移动......
  • 8个吸引兴趣和促进票务销售的活动落地页示例
    虽然为未来的活动造势说起来容易做起来难,但构建一个出色的活动着陆页可以助你一臂之力。通过传递正确的信息和以转化为目标的行动号召(CTA),你的活动着陆页可以将访客从“这看起来有点意思”变成“我绝不能错过这个!”什么是活动着陆页?在我们进一步探讨之前,让我们确保大家都在......
  • WPF UI线程死锁的各种场景
    WPFUI线程死锁的场景通常出现在多线程操作时,特别是当后台线程试图与UI线程交互、更新界面或同步执行任务时。如果没有正确处理线程间的资源访问或同步问题,UI线程可能会被阻塞,导致界面无响应。以下是常见的WPFUI线程死锁场景,以及如何避免这些问题的建议。1.使用Dispatche......
  • Spring Security 4大核心架构图与21种安全验证策略场景分析
    一、SpringSecurity架构设计图二、SpringSecurity架构流程设计图三、SpringSecurity4大架构模块图四、21种安全验证策略原创Solomon肖哥弹架构SpringSecurity是一个功能强大且高度可定制的Java安全框架,用于保护基于Spring的应用程序。它提供全面的安全......