【MybatisPlus】QueryWrapper、UpdateWrappe、LambdaQueryWrapper、LambdaUpdateWrapper

一、Wrapper简介

QueryWrapperUpdateWrapperLambdaQueryWrapperLambdaUpdateWrapper 都是 MyBatis-Plus 框架中用于构建条件的工具类,它们之间的关系是继承关系。其中 QueryWrapperUpdateWrapper 是基于普通的对象属性名来构建条件的,而 LambdaQueryWrapperLambdaUpdateWrapper 则是基于 Lambda 表达式来构建条件的。
在这里插入图片描述
下面是AbstractWrapper中的方法
在这里插入图片描述

二、QueryWrapper:

QueryWrapper 是用于构建查询条件的工具类,可以通过链式调用的方式来添加查询条件,例如 equallikein 等条件。它的方法通常以 wrapper.eqwrapper.likewrapper.in 等形式命名。

QueryWrapper 类的方法一般都需要传入实体类的属性名,例如 wrapper.eq("name", "张三") 表示等于条件,wrapper.like("name", "张") 表示模糊查询条件。
示例:

QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("age", 20).like("name", "张");
List<User> userList = userMapper.selectList(wrapper);

三、UpdateWrapper:

UpdateWrapper 是用于构建更新条件的工具类,可以通过链式调用的方式来添加更新条件,例如 seteqlike 等条件。它的方法通常以 wrapper.setwrapper.eqwrapper.like 等形式命名。

UpdateWrapper 类的方法一般都需要传入实体类的属性名,例如 wrapper.set("age", 30).eq("name", "张三") 表示设置年龄为 30,并且姓名为 “张三” 的记录。
示例:

UpdateWrapper<User> wrapper = new UpdateWrapper<>();
wrapper.set("age", 30).eq("name", "张三");
int rows = userMapper.update(null, wrapper);

四、LambdaQueryWrapper:

LambdaQueryWrapperQueryWrapper 的 Lambda 版本,可以通过 Lambda 表达式来构建查询条件,避免硬编码实体类的属性名。它的方法以 lambda 表达式形式命名,例如lambdaWrapper.eq(User::getName, "张三")。

LambdaQueryWrapper 类的方法使用 Lambda 表达式来指定属性名和条件值,使得代码更加清晰和类型安全。
示例:

LambdaQueryWrapper<User> lambdaWrapper = new LambdaQueryWrapper<>();
lambdaWrapper.eq(User::getAge, 20).like(User::getName, "张");
List<User> userList = userMapper.selectList(lambdaWrapper);

五、LambdaUpdateWrapper:

LambdaUpdateWrapper 是 UpdateWrapper 的 Lambda 版本,用于构建更新条件的工具类,同样可以通过 Lambda 表达式来指定属性名和条件值。

LambdaUpdateWrapper 类的方法使用 Lambda 表达式来指定属性名和条件值,使得代码更加清晰和类型安全。
示例:

LambdaUpdateWrapper<User> lambdaWrapper = new LambdaUpdateWrapper<>();
lambdaWrapper.set(User::getAge, 30).eq(User::getName, "张三");
int rows = userMapper.update(null, lambdaWrapper);

总的来说,QueryWrapper 和 UpdateWrapper 是基于对象属性名构建条件的工具类,而 LambdaQueryWrapper 和 LambdaUpdateWrapper 则是基于 Lambda 表达式构建条件的工具类。Lambda 版本的 Wrapper 在使用时更加类型安全,可以避免硬编码实体类的属性名,使得代码更加清晰和易于维护。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/725208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SystemVerilog Constants、Processes

SystemVerilog提供了三种类型的精化时间常数&#xff1a; •参数&#xff1a;与最初的Verilog标准相同&#xff0c;可以以相同的方式使用。 •localparameter&#xff1a;与参数类似&#xff0c;但不能被上层覆盖模块。 •specparam&#xff1a;用于指定延迟和定时值&#x…

python+django+vue电影票订购系统dyvv4

电影院订票信息管理系统综合网络空间开发设计要求。目的是将电影院订票通过网络平台将传统管理方式转换为在网上操作&#xff0c;方便快捷、安全性高、交易规范做了保障&#xff0c;目标明确。电影院订票信息管理系统可以将功能划分为用户和管理员功能[10]。 语言&#xff1a;…

Leetcode 1

题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任…

mybatis在更新一行数据或者插入一条新数据后返回对应的主键id

今天在做项目的时候需要用到上次数据更新或者插入的id&#xff0c;学习了一下找到此方法&#xff0c;记录一下。 在MyBatis中&#xff0c;当插入一条新数据后&#xff0c;可以使用useGeneratedKeys属性和keyProperty属性来获取新插入数据的ID。useGeneratedKeys属性告诉MyBatis…

最小生成树的典型应用

2024-02-01&#xff08;最小生成树&#xff0c;二分图&#xff09;-CSDN博客 如何证明当前这条边可以被选&#xff1f; 假设不选当前边&#xff0c;得到了一棵树&#xff0c;然后将这条边加上&#xff0c;那么必然会出现一个环&#xff0c;在这个环上&#xff0c;一定可以找出一…

超分辨率(1)--基于GAN网络实现图像超分辨率重建

目录 一.项目介绍 二.项目流程详解 2.1.数据加载与配置 2.2.构建生成网络 2.3.构建判别网络 2.4.VGG特征提取网络 2.5.损失函数 三.完整代码 四.数据集 五.测试网络 一.项目介绍 超分辨率&#xff08;Super-Resolution&#xff09;&#xff0c;简称超分&#xff08…

云计算OpenStack KVM迁移

动态迁移 static migration 静态迁移 cold migration 冷迁移 offline migration 离线迁移 live migration 动态迁移 hot migration 热迁移 online migration 在线迁移 衡量 整体迁移时间 服务器停机时间 性能影响(迁移后和其它客户机) 特点 负载均衡 解除硬件依赖…

Android动态添加view设置view大小(宽高)

动态生成view并添加到布局开源框架&#xff1a;Dynamico GitHub - jelic98/dynamico: Android library for inflating dynamic layouts in runtime based on JSON configuration fetched from server 第一种&#xff1a;ViewGroup在添加子view的时候设置layoutParams public…

pyinstaller 如何打包python 代码

本次文章主要介绍&#xff0c;pyinstaller 打包 python 常见的问题&#xff0c;以及解决办法 1、安装 pip install pyinstaller2、使用最全面的 spec 配置文件方法打包 介绍&#xff1a; root |_ test | |_ main.py |_custom_module |_config 如上&#xff1a; 在 root 下有…

List 集合手动分页

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 为方便测试&#xff0c;可以直接在 controller 内添加一个方法&#xff0c;或者直接通过 main 方法测试 List 手动分页&#xff1a; GetMapping("/getUserInfo")public Map<String,Obje…

领腾讯云红包,可抵扣云服务器订单金额

在2024年腾讯云新春采购节优惠活动上&#xff0c;可以领取新年惊喜红包&#xff0c;打开活动链接 https://curl.qcloud.com/oRMoSucP 会自动弹出红包领取窗口&#xff0c;如下图&#xff1a; 腾讯云2024新春采购节红包领取 如上图所示&#xff0c;点击“领”红包&#xff0c;每…

信用卡选购要点

文章目录 额度银行联名卡年费福利其他 额度 一般四大行的信用卡审批门槛高&#xff0c;且发卡的额度偏低。 额度也可以通过后期的消费与规律还款获得持续提升。 银行 信用卡一般是网上办理相关业务&#xff0c;对线下网点依赖不大。但是所在城市有信用卡所属银行&#xff0…

【S32K3 MCAL配置】-1.1-GPIO配置及其应用-点亮LED灯(基于MCAL)

目录(共13页精讲,手把手教你S32K3从入门到精通) 实现的架构:基于MCAL层 前期准备工作: 1 创建一个FREERTOS工程

proxysql 2.6部署代理MGR集群读写分离

官方文档 https://proxysql.com/documentation/ProxySQL-Configuration/ 下载安装proxysql https://github.com/sysown/proxysql/releases/download/v2.6.0/proxysql-2.6.0-1-centos7.x86_64.rpmyum -y localinstall proxysql-2.6.0-1-centos7.x86_64.rpm # 软链接数据目录 …

ASPICE实操中的那点事儿-如何解决上、下游一致性难以保证的问题

写在前面 ASPICE理解起来容易&#xff0c;毕竟是有条有理的。但实操起来&#xff0c;尤其是把ASPICE各过程域做全的时候&#xff0c;会遇到各种各样的问题&#xff08;不是技术问题有多难&#xff0c;而是该如何做选择&#xff0c;如何既能符合ASPICE要求&#xff0c;保证过程质…

外包干了10天,技术退步明显。。。。。

先说一下自己的情况&#xff0c;本科生&#xff0c;2019年我通过校招踏入了南京一家软件公司&#xff0c;开始了我的职业生涯。那时的我&#xff0c;满怀热血和憧憬&#xff0c;期待着在这个行业中闯出一片天地。然而&#xff0c;随着时间的推移&#xff0c;我发现自己逐渐陷入…

Java必须掌握的莫夫曼树(含面试大厂题和源码)

面试题&#xff1a;构建哈夫曼树 相关知识点&#xff1a; 哈夫曼树&#xff08;Huffman Tree&#xff09;&#xff1a;哈夫曼树是一种用于数据压缩的树形结构。它是一种最优二叉树&#xff0c;其特点是频率高的字符出现在树的顶部&#xff0c;频率低的字符出现在树的底部&…

2024年阿里云域名优惠口令更新,亲测有效口令大全

2024年阿里云域名优惠口令&#xff0c;com域名续费优惠口令“com批量注册更享优惠”&#xff0c;cn域名续费优惠口令“cn注册多个价格更优”&#xff0c;cn域名注册优惠口令“互联网上的中国标识”&#xff0c;阿里云优惠口令是域名专属的优惠码&#xff0c;可用于域名注册、续…

OCR图片预处理之去除红色水印

import cv2 读取图像 src cv2.imread(“page-2_0.jpg”) if src is None: print(“Fail to open image!”) exit() 将图像转换为灰度图 gray cv2.cvtColor(src, cv2.COLOR_BGR2GRAY) # 全局二值化 th 180 # 阈值要根据实际情况调整 binary cv2.threshold(gray, t…

aiofiles,一个超酷的 Python 异步编程库!

目录 前言 什么是aiofiles库&#xff1f; 安装aiofiles库 基本功能 1. 异步打开文件 2. 异步读取文件 3. 异步写入文件 4. 异步追加内容到文件 应用场景 1. 异步Web服务器 2. 异步数据处理 3. 异步日志记录 总结 前言 大家好&#xff0c;今天为大家分享一个超酷的 Pytho…