Mybatis plus核心功能-条件构造器

目录

1 前言

2 使用方法

2.1 where条件部分

2.1.1 基于QueryWrapper

2.1.2 基于LambdaQueryWrapper(推荐,优雅)

2.2 set语句比较特殊的部分

2.2.1 基于UpdateWrapper

2.2.2 基于LambdaUpdateWrapper(推荐,优雅)

3 结尾语 


1 前言

Mybatis plus自带的一些方法已经能够我们对简单SQL的需求,但是一部分稍复杂的操作仍然需要我们使用条件构造器来实现。而条件构造器QueryWrapper和LambdaQueryWrapper通常用来构建select、delete、update的where条件部分UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用。本文参考自黑马程序员。

2 使用方法

一般情况下要select就用select函数,要like就用like函数,大于就gt,小于就lt……一些特殊的,还可以用setSql函数。具体例子如下。

2.1 where条件部分

例子:

SELECT id,username,info,balance FROM user WHERE username LIKE "i" AND balance >= 100

2.1.1 基于QueryWrapper

void testQueryWrapper() {// 1.构建查询条件QueryWrapper<User> wrapper = new QueryWrapper<User>().select("id", "username", "info", "balance").like("username", "i").ge("balance", 100);// 2.查询List<User> users = userMapper.selectList(wrapper);
}

2.1.2 基于LambdaQueryWrapper(推荐,优雅)

上面的id,username等在这里被换成了lambda表达式,显然更加优雅,可维护性更高。

void testLambdaQueryWrapper() {// 1.构建查询条件LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>().select(User::getId, User::getUsername, User::getInfo, User::getBalance).like(User::getUsername, "i").ge(User::getBalance, 100);// 2.查询List<User> users = userMapper.selectList(wrapper);
}

2.2 set语句比较特殊的部分

例子:

UPDATE user SET balance = balance - 100 WHERE id in (1, 2)

2.2.1 基于UpdateWrapper

void testUpdateWrapper() {List<Long> ids = List.of(1L, 2L);UpdateWrapper<User> wrapper = new UpdateWrapper<User>().setSql("balance = balance - 100")//语句特殊.in("id", ids);userMapper.update(null, wrapper);
}

2.2.2 基于LambdaUpdateWrapper(推荐,优雅)

这里就不举例子了,和LambdaQueryWrapper类似,换成Lambda表达式即可。

3 结尾语 

这里只介绍了几个简单的例子,具体可看官网的文档。不过"balance = balance - 100"这样的特殊语句直接写在这里真的合适吗?接下来可以看作者的另一篇文章《Mybatis plus核心功能-自定义SQL​​​​​​​》

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

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

相关文章

Scala Intellij编译错误:idea报错xxxx“is already defined as”

今天写scala代码时,Idea报了这样的错误&#xff0c;如下图所示&#xff1a; 一般情况下原因分两种&#xff1a; 第一是我们定义的类或对象重复多次出现&#xff0c;编译器无法确定使用哪个定义。 这通常是由于以下几个原因导致的&#xff1a; 重复定义&#xff1a;在同一个文件…

docker (十二)-私有仓库

docker registry 我们可以使用docker push将自己的image推送到docker hub中进行共享&#xff0c;但是在实际工作中&#xff0c;很多公司的代码不能上传到公开的仓库中&#xff0c;因此我们可以创建自己的镜像仓库。 docker 官网提供了一个docker registry的私有仓库项目&#…

Linux高级编程:进程(一)

1、进程 1.1什么是进程&#xff1a;进行中的程序&#xff08;正在运行中的程序&#xff09;-process过程 程序的一次执行过程 - 进程 hello.c -- 程序源代码 a.out -- 可执行程序 1.2程序和进程的关系&#xff1a; 程序<------>进程 1.3进程怎么来的&#xff1a; 程…

【大数据架构(3)】Lambda vs. Kappa Architecture-选择你需要的架构

文章目录 一. Data Processing Architectures1. Lambda Architecture1.1. 架构说明a. Data Ingestion Layerb. Batch Layer (Batch processing)c. Speed Layer (Real-Time Data Processing)d. Serving Layer 1.2. Lambda Architecture的优缺点1.3. 使用案例 2. Kappa Architect…

【论文阅读-PRIVGUARD】Day4:3节

3 PRIVANALYZER&#xff1a;强制执行隐私政策的静态分析 本节介绍PRIVANALYZER&#xff0c;这是一个用于强制执行由PRIVGUARD追踪的隐私政策的静态分析器**。我们首先回顾LEGALEASE政策语言&#xff0c;我们使用它来正式编码政策&#xff0c;然后描述如何静态地强制执行它们**…

论文设计任务书学习文档|基于Web的个性化简历职位推荐系统的设计与实现

文章目录 论文(设计)题目:基于Web的个性化简历职位推荐系统的设计与实现1、论文(设计)的主要任务及目标2、论文(设计)的主要内容3、论文(设计)的基本要求4、进度安排论文(设计)题目:基于Web的个性化简历职位推荐系统的设计与实现 1、论文(设计)的主要任务及目标…

163邮箱SMTP端口号及服务器地址详细设置?

163邮箱SMTP端口号是什么&#xff1f;163邮件SMTP设置教程&#xff1f; 除了基本的邮箱账号和密码外&#xff0c;还需要了解SMTP服务器地址和端口号&#xff0c;以及相应的设置。这些设置对于确保邮件能够顺利发送至关重要。下面&#xff0c;蜂邮EDM将详细介绍163邮箱SMTP端口…

JavaScript 进阶03

编程思想 面向过程 面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&#xff0c;使用的时候再一个一个的依次调用 面向对象 面向对象是把事务分解成为一个个对象&#xff0c;然后由对象之间分工与合作。 在面向对象程序开发思想中&a…

[DEBUG] spring boot-如何处理链接中的空格等特殊字符

问题&#xff1a; get或者post中提交的内容可能有空格、#等特殊字符&#xff0c;不做处理的话可能解析错误。 解决&#xff1a; html中&#xff1a; <a th:href"{/listSgrna(id${item.getGeneId()},geneName${item.getGeneName()},genome${genome},sgrnaNum${sgrnaN…

【MATLAB】SVMD_ MFE_SVM_LSTM 神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 SVMD_MFE_SVM_LSTM神经网络时序预测算法结合了单变量分解&#xff08;SVMD&#xff09;、多尺度特征提取&#xff08;MFE&#xff09;、聚类后展开支持向量机&#xff08;SVM&#xff09;…

【文献管理】zotero插件3——翻译与笔记

文章目录 文献翻译——zotero-pdf-translate记笔记——条目笔记记笔记——zoterobetter notes 文献翻译——zotero-pdf-translate 翻译插件zotero-pdf-translate下载划词翻译功能介绍 记笔记——条目笔记 记笔记——zoterobetter notes zotero better notes介绍笔记插件&am…

前后端分离项目Vue+node.js二手商品交易系统74qb3

校园二手交易网络的开发和使用在不同的地方是有着差别的。在初高中&#xff0c;校园二手交易网也就是简单的买卖物品&#xff1b;但在大学中&#xff0c;通过买卖自己的物品可以建立联系成为朋友&#xff0c;也就是说校园二手交易网不仅仅是一个交易物品的平台&#xff0c;同时…