当前位置: 首页 > news >正文

Mybatis-plus动态条件查询QueryWrapper的使用

Mybatis-plus动态条件查询QueryWrapper的使用

一:queryWrapper介绍

queryWrapper是mybatis plus中实现查询的对象封装操作类,可以封装sql对象,包括where条件,order by排序,select哪些字段等等,他的层级关系如下图:

Wrapper:条件构造抽象类,最顶端父类;
AbstractWrapper:用于查询条件封装,生成sql的where条件;
AbstractLambdaWrapper:Lambda语法使用Wrapper统一处理解析lambda获取column。
LambdaQueryWrapper:用于lambda语法使用的查询Wrapper;
LambdaUpdateWrapper:Lambda更新封装Wrapper;
QueryWrapper:Entity对象封装操作类,不是用lambda;
UpdateWrapper:Update条件封装,用于Entity对象更新操作。

在这里插入图片描述

二:queryWrapper示例

2.1-案例一:根据name模糊查看未删除的用户列表信息

过滤条件:

name 用户名称 ,模糊查看
del_flag = 0
按照create_time创建时间降序
sql实现:select * from t_user
where del_flag = 0
<if test ="name!=null and ''!=name">and name like concat('%',#{name},'%')
</if>
order by create_time desc

queryWrapper实现:

/*** 案例一:根据name模糊查看未删除的用户列表信息* @param name* @return*/
@RequestMapping("/list")
public Map<String,Object> getList(@RequestParam String name){Map<String,Object> result = new HashMap<>();//构建一个查询的wrapperQueryWrapper<User> wrapper = new QueryWrapper<User>();//name不为空时,组装模糊查询条件wrapper.like(StringUtils.isNotBlank(name),"name",name);//未删除wrapper.eq("del_flag",0);//创建时间降序wrapper.orderByDesc("create_time");List<User> list = userMapper.selectList(wrapper);result.put("data",list);return result;
}

2.2-案例二:查看姓李的并且邮箱不为空的用户列表

sql实现:

select * from t_user
where del_flag = 0
and name like concat('李','%')
and email is not null
order by create_time desc

queryWrapper实现:

/*** 案例二:查看姓张的并且邮箱不为空的用户列表* @return*/
@RequestMapping("/list2")
public Map<String,Object> getList2(){Map<String,Object> result = new HashMap<>();//构建一个查询的wrapperQueryWrapper<User> wrapper = new QueryWrapper<User>();//姓张的wrapper.likeRight("name","张");//邮箱不为空wrapper.isNotNull("email");//未删除wrapper.eq("del_flag",0);//创建时间降序wrapper.orderByDesc("create_time");List<User> list = userMapper.selectList(wrapper);result.put("data",list);return result;
}

2.3-案例三:年龄范围查询(20-30之间的)

sql实现:

select * from t_user
where del_flag=0
and age between 20 and 30
order by create_time desc

queryWrapper实现:

/*** 案例三:年龄范围查询(20-30之间的)* @return*/
@RequestMapping("/list3")
public Map<String,Object> getList3(){Map<String,Object> result = new HashMap<>();//构建一个查询的wrapperQueryWrapper<User> wrapper = new QueryWrapper<User>();//年龄20-30之间的wrapper.between("age",20,30);//未删除wrapper.eq("del_flag",0);//创建时间降序wrapper.orderByDesc("create_time");List<User> list = userMapper.selectList(wrapper);result.put("data",list);return result;
}

相关文章:

Mybatis-plus动态条件查询QueryWrapper的使用

Mybatis-plus动态条件查询QueryWrapper的使用 一&#xff1a;queryWrapper介绍 queryWrapper是mybatis plus中实现查询的对象封装操作类&#xff0c;可以封装sql对象&#xff0c;包括where条件&#xff0c;order by排序&#xff0c;select哪些字段等等&#xff0c;他的层级关…...

Redis安装配置远程连接

1. yum 安装 redis&#xff1a; 直接使用命令&#xff0c;将 redis 安装到 linux 服务器中&#xff1a; yum -y install redis 2. 启动 redis&#xff1a; 在 xshell 里&#xff0c;可以使用下面命令&#xff0c;以后台方式启动 redis&#xff1a; [rootVM-8-17-centos /]…...

pycharm中配置conda

安装好pycharm和conda后&#xff0c;打开pycharm&#xff1a;...

matlab解常微分方程常用数值解法1:前向欧拉法和改进的欧拉法

总结和记录一下matlab求解常微分方程常用的数值解法&#xff0c;本文先从欧拉法和改进的欧拉法讲起。 d x d t f ( x , t ) , x ( t 0 ) x 0 \frac{d x}{d t}f(x, t), \quad x\left(t_{0}\right)x_{0} dtdx​f(x,t),x(t0​)x0​ 1. 前向欧拉法 前向欧拉法使用了泰勒展开的第…...

SQL | 计算字段

7-创建计算字段 7.1-计算字段 存储在数据库中的数据一般不是我们所需要的字段格式&#xff0c; 需要公司名称&#xff0c;同时也需要公司地址&#xff0c;但是这两个数据存储在不同的列中。 省&#xff0c;市&#xff0c;县和邮政编码存储在不同的列中&#xff0c;但是当我们…...

leetcode做题笔记67

给你两个二进制字符串 a 和 b &#xff0c;以二进制字符串的形式返回它们的和。 思路一&#xff1a;模拟题意 void reserve(char* s) {int len strlen(s);for (int i 0; i < len / 2; i) {char t s[i];s[i] s[len - i - 1], s[len - i - 1] t;} }char* addBinary(cha…...

fastadmin 自定义搜索分类和时间范围

1.分类搜索&#xff0c;分类信息获取----php 2.对应html页面&#xff0c;页面底部加搜索提交代码&#xff08;这里需要注意&#xff1a;红框内容&#xff09; 图上代码----方便直接复制使用 <script id"countrySearch" type"text/html"><!--form…...

Oracle Data Redaction与Data Pump

如果表定义了Redaction Policy&#xff0c;导出时数据会脱敏吗&#xff1f;本文解答这个问题。 按照Oracle文档Advanced Security Guide第13章&#xff0c;13.6.5的Tutorial&#xff0c;假设表HR.jobs定义了Redaction Policy。 假设HR用户被授予了访问目录对象的权限&#xf…...

设计模式(6)原型模式

一、介绍 Java中自带的原型模式是clone()方法。该方法是Object的方法&#xff0c;native类型。他的作用就是将对象的在内存的那一块内存数据一字不差地再复制一个。我们写简单类的时候只需要实现Cloneable接口&#xff0c;然后调用Object::clone方法就可实现克隆功能。这样实现…...

pywinauto结合selenium实现文件上传

简介 PC端-Windows上的元素识别可用viewWizard工具 PC端-Windows上的元素操作可用pywinauto库 浏览器上网页的元素识别可用selenium 安装 pip installer pywinauto 使用须知 pywinauto官方文档 确定app的可访问技术 1、win32 API(backend=“win32”) 一般是MFC、VB6、VC…...

【Java多线程学习7】Java线程池技术

线程池技术 一、什么是线程池 线程池顾名思义是管理一组线程的池子。当有任务要处理时&#xff0c;直接从线程池中获取线程来处理&#xff0c;处理完之后线程不会立即销毁&#xff0c;而是等待下一个任务。 二、为什么要使用线程池? 线程池的作用&#xff1f; 1、降低资源…...

VMware虚拟机NAT模式Ubuntu无法上网解决方案

发现只要NAT模式&#xff0c;ping地址时就报网络不可达&#xff0c;且右上方网络图标消失&#xff0c;但是外部USB网络设备又只能在NAT模式下使用。。。 博主的解决方案如下&#xff1a; 按WinR键入services.msc&#xff0c; 找到VMware DHCP Service、VMware NAT Service和V…...

Linux中无法忘记mysql密码处理办法

找到/etc/my.cnf或者/etc/mysql/my.cnf文件 添加下面两行代码&#xff0c;取消密码验证 [mysqld] skip-grant-table使用命令登录&#xff1a;mysql -u root -p&#xff0c;回车&#xff0c;回车使用sql语句来修改密码 mysql>use mysql; mysql>update user set password…...

vue 使用 el-upload 上传文件(自动上传/手动上传)

vue 使用 el-upload 上传文件(自动上传/手动上传) 文章目录 1. 自动上传(选择完文件后,调用axios上传)2.手动上传 1. 自动上传(选择完文件后,调用axios上传) <el-uploadref"upload1"action:multiple"false"accept".xlsx,.csv,.xls":auto-upl…...

服务器遭受攻击之后的常见思路

哈喽大家好&#xff0c;我是咸鱼 不知道大家有没有看过这么一部电影&#xff1a; 这部电影讲述了男主是一个电脑极客&#xff0c;在计算机方面有着不可思议的天赋&#xff0c;男主所在的黑客组织凭借着超高的黑客技术去入侵各种国家机构的系统&#xff0c;并引起了德国秘密警察…...

C语言学习笔记 使用vscode外部console出现闪退-12

前言 在使用vscode的外部console时&#xff0c;会出现闪退现象&#xff0c;这是因为程序运行结束后&#xff0c;系统自动退出了终端&#xff08;终端机制决定的&#xff09;。我们可以在C程序结束后&#xff0c;使用system函数来暂停DOS终端系统&#xff0c;这样就可以完整地看…...

从Spring源码看Spring如何解决循环引用的问题

Spring如何解决循环引用的问题 关于循环引用&#xff0c;首先说一个结论&#xff1a; Spring能够解决的情况为&#xff1a;两个对象都是单实例、且通过set方法进行注入。 两个对象都是单实例&#xff0c;通过构造方法进行注入&#xff0c;Spring不能进行循环引用问题&#x…...

03 - 通过git log可以查看版本演变历史

通过git log可以查看版本演变历史 主要包括&#xff1a; commit 哈希id提交的Author信息提交的日期和时间commit info信息 git log本人常用&#xff0c;显示简洁&#xff1a; git log --oneline当log条数很多的时候&#xff0c;可以如下指定显示的数量&#xff1a; git log…...

【图论】单源最短路

算法提高课笔记。&#xff08;本篇还未更新完… 目录 单源最短路的建图方式例题热浪题意思路代码 信使题意思路代码 香甜的黄油题意思路代码 最小花费题意思路代码 最优乘车题意思路代码 昂贵的聘礼题意思路代码 单源最短路的建图方式 最短路问题可以分为以下两类&#xff1a…...

闻道网络:2023宠物消费网络营销洞察数据报告(附下载)

关于报告的所有内容&#xff0c;公众【营销人星球】获取下载查看 核心观点 行业持续升级&#xff0c;增速放缓&#xff0c;正朝着多元化和专业化的方向发展&#xff1b;自公共事件以来&#xff0c;因&#xff0c;“猫不用遛”&#xff0c;养猫人士增速迅猛反超犬主人&#xf…...

告别Photoscan卡顿!手把手教你用Metashape 1.7.4从航片到DOM/DEM的完整流程(附性能优化技巧)

告别Photoscan卡顿&#xff01;手把手教你用Metashape 1.7.4从航片到DOM/DEM的完整流程&#xff08;附性能优化技巧&#xff09; 航测数据处理工程师最头疼的莫过于软件卡顿和漫长的等待时间。当你在处理数百张航拍照片时&#xff0c;突然弹出的"无响应"提示或进度条…...

遥感测绘领域投稿避坑指南:从《测绘学报》到《遥感信息》,如何根据你的研究方向精准选刊

遥感测绘领域投稿策略&#xff1a;从期刊匹配到高效发表的实战指南 站在实验室窗前&#xff0c;看着屏幕上闪烁的遥感影像处理结果&#xff0c;你或许正面临一个关键抉择——如何将数月甚至数年的研究成果转化为一篇能够发表在合适期刊上的论文。对于遥感测绘领域的研究生和青年…...

RWKV-7多语言对话实战:东南亚小语种(泰/越/印尼)支持验证

RWKV-7多语言对话实战&#xff1a;东南亚小语种&#xff08;泰/越/印尼&#xff09;支持验证 1. 项目背景与价值 在全球化交流日益频繁的今天&#xff0c;多语言AI对话工具的需求持续增长。传统大语言模型往往存在显存占用高、推理速度慢等问题&#xff0c;特别是在处理东南亚…...

哔哩下载姬Downkyi:你的B站视频管家成长之路

哔哩下载姬Downkyi&#xff1a;你的B站视频管家成长之路 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;。 …...

功率MOSFET选型方案——路空一体飞行汽车充电场站高效、可靠与紧凑型电源系统设计指南

随着城市立体交通的快速发展&#xff0c;路空一体飞行汽车充电场站已成为下一代交通能源补给的核心枢纽。其高功率充电桩、储能系统及辅助设施对电源转换与管理的效率、功率密度及长期运行可靠性提出了极致要求。功率MOSFET作为电能转换的关键开关器件&#xff0c;其选型直接决…...

JetBrains IDE试用期重置工具:开发者必备的高效解决方案

JetBrains IDE试用期重置工具&#xff1a;开发者必备的高效解决方案 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 在当今快速发展的软件开发领域&#xff0c;JetBrains系列IDE凭借其卓越的代码智能提示、强大的…...

Flux2-Klein-9B-True-V2部署教程:tail -f实时监控日志定位加载异常

Flux2-Klein-9B-True-V2部署教程&#xff1a;tail -f实时监控日志定位加载异常 1. 项目概述 Flux2-Klein-9B-True-V2是基于官方FLUX.2 [klein] 9B改进的文生图/图生图模型&#xff0c;具备强大的图像生成和编辑能力。这个模型特别适合需要高质量图像生成的场景&#xff0c;从…...

TorrServer性能优化:缓存策略、内存管理和网络调优

TorrServer性能优化&#xff1a;缓存策略、内存管理和网络调优 【免费下载链接】TorrServer Torrent stream server 项目地址: https://gitcode.com/gh_mirrors/to/TorrServer TorrServer作为一款高效的Torrent流服务器&#xff0c;其性能表现直接影响用户的流媒体体验。…...

# 发散创新:基于Go语言的分布式灾难恢复架构设计与实战在现代云原生环

发散创新&#xff1a;基于Go语言的分布式灾难恢复架构设计与实战 在现代云原生环境中&#xff0c;灾难恢复&#xff08;Disaster Recovery, DR&#xff09;不再是事后补救的被动策略&#xff0c;而是系统高可用性的核心组成部分。本文将深入探讨如何使用 Go语言 构建一个轻量级…...

从华为3COM到H3C再到紫光:一个网络设备品牌的“前世今生”与认证体系变迁

H3C认证体系与产品线演进&#xff1a;网络工程师必备的品牌变迁指南 第一次接触H3C交换机的工程师&#xff0c;往往会对设备型号产生困惑——为什么S3600和S3900性能参数几乎相同&#xff1f;为什么早期教材中提到的HCNE认证如今变成了H3CNE&#xff1f;这些疑问背后&#xff0…...