MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用_lambdaquerywrapper查询一条最近记录-程序员宅基地

技术标签: java  mybatis  MyBatis-Plus  

在这里插入图片描述

假如我们有一张banner_item表,现需要通过banner_id查出所有数据(查询List)

@Data
public class BannerItem {

    private Long id;

    private String name;

    private String img;

    private String keyword;

    private Integer type;

    private Long bannerId;
}


QueryWrapper

最基础的使用方式是这样

// 查询条件构造器

QueryWrapper<BannerItem> wrapper = new QueryWrapper<>();
wrapper.eq("banner_id", id);
// 查询操作
List<BannerItem> bannerItems = bannerItemMapper.selectList(wrapper);
// 现在也被封装到ServiceImpl的list方法里面
// List<BannerItem> bannerItems = serviceImpl.list(wrapper);


然后我们可以引入lambda,避免我们在代码中写类似的于banner_id的硬编码

QueryWrapper<BannerItem> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(BannerItem::getBannerId, id);
List<BannerItem> bannerItems = bannerItemMapper.selectList(wrapper);
// 现在也被封装到ServiceImpl的list方法里面
// List<BannerItem> bannerItems = serviceImpl.list(wrapper);


LambdaQueryWrapper
为了简化lambda的使用,我们可以改写成LambdaQueryWrapper构造器,语法如下:

LambdaQueryWrapper<BannerItem> wrapper = new QueryWrapper<BannerItem>().lambda();
wrapper.eq(BannerItem::getBannerId, id);
List<BannerItem> bannerItems = bannerItemMapper.selectList(wrapper);
// 现在也被封装到ServiceImpl的list方法里面
// List<BannerItem> bannerItems = serviceImpl.list(wrapper);


我们可以再次将QueryWrapper<BannerItem>.lambda()简化,变成这个样子

LambdaQueryWrapper<BannerItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BannerItem::getBannerId, id);
List<BannerItem> bannerItems = bannerItemMapper.selectList(wrapper);
// 现在也被封装到ServiceImpl的list方法里面
// List<BannerItem> bannerItems = serviceImpl.list(wrapper);


链式查询

MyBatis-Plus还提供了一种链式查询的方式,和上面的代码效果一样。
但是这种写法偏向于炫技,可读性没有上面的代码强,大家可以根据需要自行选择方式。

List<BannerItem> bannerItems = new LambdaQueryChainWrapper<>(bannerItemMapper)
                        .eq(BannerItem::getBannerId, id)
                        .list();


如果只想查询一条记录,例如通过id查询某条记录的详情,使用.one()即可,例如

BannerItem bannerItem = new LambdaQueryChainWrapper<>(bannerItemMapper)
                        .eq(BannerItem::getId, id)
                        .one();

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zw764987243/article/details/114286053

智能推荐

opencv数据结构CvScalar-程序员宅基地

文章浏览阅读1.4w次,点赞7次,收藏10次。opencv数据结构CvScalarhttp://www.gbs-cqh.net/cvscalar/ c接口中定义为结构体CvScalar;c++接口中定义为类Scalar。下面是c接口中的定义:这个 CvScalar就是一个可以用来存放4个double数值的数组;一般用来存放像素值(不一定是灰度值哦)的,最多可以存放4个通道的。typedef struct CvScala_cvscalar

.Net学习难点讨论系列6 - .Net中对字符串处理的方法_net 6 字符串枚举-程序员宅基地

文章浏览阅读270次。此文章在aierong 的http://www.cnblogs.com/aierong/archive/2005/04/26/145617.html基础上稍加改动。感谢原作者。 .Net提供了将数值、枚举或日期时间等数据类型表示为字符串的方法(依赖于给ToString()方法传入参数),也提供了(包括自定义解析过程)将字符串表示为某种类型的方法(类/对象名.Parse(string))。 格式化由格式说明符字符的字符串控制,该字符串指示如何表示基类型值;或者怎样将_net 6 字符串枚举

一文了解路由平台的 Cisco IOS 和 IOS XE 命名约定,看这篇就够了_ios xe system 在哪些设备-程序员宅基地

文章浏览阅读5k次。文章目录概述命名约定一致性IOSCisco IOS XE 软件版本 16 和 17IOS XE 软件版本 3SIOS XE Train 标识符物理平台虚拟平台IOS经典Cisco IOS 软件版本 15IOS 经典列车标识符物理平台概述命名约定一致性对某事物进行任何命名约定的全部意义在于使事物保持一致和统一。遵守约定可为专业人员提供基本规则,让他们坚持已知的内容,为现在和未来的员工以及使用思科产品的人员提供清晰简洁的信息。本文概述了Cisco 路由平台的 Cisco IOS 命名约定,包括 IOS _ios xe system 在哪些设备

京东的宝贝商品主图视频如何无损的保存下来_京东主图无水印视频怎么下载?-程序员宅基地

文章浏览阅读3.3k次。一起来看看小编的演示操作,利用载图助手可以批量将京东上的宝贝商品主图及主图视频同时导到自己的电脑上。您也可以安装个载图助手然后跟着小编的操作方法一起操作试试。如果你正好在京东平台挑选商品,然后要把喜欢的商品图片和视频给导出来,这时您把该商品链给复制起来。然后运行电脑上已安装好的最新版本载图助手,将链接导到进去,多个链接以上下一个个排列。挑选完商品后,在软件首页的下载功能选项中,将下载主图、同时下载视频,两项打勾,其它根据需要选择,批量下载分类保存功能,推荐你勾选,这样可以方..._京东主图无水印视频怎么下载?

vue 项目中使用video实现视频播放效果暂停播放-程序员宅基地

文章浏览阅读6.3k次,点赞4次,收藏9次。<video :src="video_url" controls="controls" style="width:100%;height:100%;" ref="vueMiniPlayer"></video>再给this.video_url='http://47.105.206.28/videos/wangkun.mp4'判断是否暂停状态返回true falsethis.$refs.vueMiniPlayer.paused //true falsethis..

设计模式_设计模式 ` 一个类只负责一个功能领域中的相应职责-程序员宅基地

文章浏览阅读4.9k次,点赞8次,收藏9次。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式可以提高代码的**可复用性**、**可维护性**、**可读性**、**稳健性**以及**安全性**。_设计模式 ` 一个类只负责一个功能领域中的相应职责

随便推点

云南师范大学泰语718量子力学831普通物理考研真题-程序员宅基地

文章浏览阅读358次,点赞10次,收藏10次。云南财经大学805马克思主义基本原理概论考研真题2017-2021[缺2020]云南财经大学704毛中特考研真题2017...云南师范大学333教育综合考研真题2010--2023年[含答案]云南师范大学812初等教育学考研真题2012--202...云南师范大学718量子力学考研真题2017--2020年云南师范大学831普通物理考研真题2017--2020年...云南师范大学泰语考研真题考研真题2016--2019年...云南财经大学432统计学考研真题应用统计学考研真题。云南师范大学泰语考研真题。

hive 分页实现_hive limit 分页-程序员宅基地

文章浏览阅读3k次。1.支持limit n,m语法的hive版本#!/bin/bashcnt=$(set hive.cli.print.header=false;hive -e "select count(*) from exam.userbehavior;")echo "总记录数: $cnt 条"#每页10条pageSize=10pageNum=`expr $cnt + $pageSize - 1 / $pageSize`echo "总页数: $pageNum 页"for((a=0;a<=$pa_hive limit 分页

服务器装系统bios设置方法,比较常见的BIOS设置方法实现U盘成功装系统-程序员宅基地

文章浏览阅读413次。在以往的光盘装系统中,需要调整第一启动项为光驱启动,而如今,U盘装系统已经成为一种主流,将第一启动项改为U盘启动是用户首要的操作任务,但是不同电脑不同版本的BIOS设置的方法不一样,下面就让高手来教大家一种比较常见的BIOS设置方法,实现U盘成功装系统。首先,在开机时按下Delelte键可以进入直接BIOS设置程序。当然要注意到不同类型的机器进入BIOS设置程序的按键不同,并且有的在屏幕上给出提示..._服务器bios设置传统模式u盘安装系统

[实战] 朴素贝叶斯分类器进行垃圾邮件过滤_朴素贝叶斯分类器和svm在垃圾邮件过滤任务中-程序员宅基地

文章浏览阅读1.7k次。我们已经讲解过朴素贝叶斯分类器的基本原理和实现:动手实现朴素贝叶斯分类器进行文档分类在此基础上,我们实现垃圾邮件的过滤,数据为50封txt邮件(1)将text文本文件,分成单词列表使用正则表达式,使用除单词和数字外的任意字符串为分隔符并删除长度小于3的字符串def textParse(bigString): import re listOfTokens = re.spli..._朴素贝叶斯分类器和svm在垃圾邮件过滤任务中

cvs 常用命令记录-程序员宅基地

文章浏览阅读130次。//z 纯粹自己备忘//z 9/19/2011 1:22 [email protected] 命令的形式:cvscvs-options subcommand subcommand-options查看帮助:cvs-H subcommandcvs status -h检出文件:cvscheckout mymodule更新cvs..._cvs 回滚

AudioTrack 播放wav音频文件_audioformat.encoding.pcm_float不生效-程序员宅基地

文章浏览阅读595次。我们要想对wav文件格式操作,我们就要了解wav的文件格式https://blog.csdn.net/qq_15255121/article/details/115168456通过上面我们可以知道第8到11字节 代表当前是wave格式也就是wav格式第20-21字节 代表当前的音频数据是什么格式 如果是1代表是pcm格式第24-28字节,代表当前的采样率第34-35字节,代表当前的采样大小(位深)第44字节开始,是我们真是的数据通过上面的分析我们可以知道,wav只是把p._audioformat.encoding.pcm_float不生效

推荐文章

热门文章

相关标签