码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用


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

    在这里插入图片描述

    1. @Data
    2. public class BannerItem {
    3. private Long id;
    4. private String name;
    5. private String img;
    6. private String keyword;
    7. private Integer type;
    8. private Long bannerId;
    9. }
    • QueryWrapper

    最基础的使用方式是这样

    1. // 查询条件构造器
    2. QueryWrapper<BannerItem> wrapper = new QueryWrapper<>();
    3. wrapper.eq("banner_id", id);
    4. // 查询操作
    5. List<BannerItem> bannerItems = bannerItemMapper.selectList(wrapper);

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

    1. QueryWrapper wrapper = new QueryWrapper<>();
    2. wrapper.lambda().eq(BannerItem::getBannerId, id);
    3. List bannerItems = bannerItemMapper.selectList(wrapper);
    • LambdaQueryWrapper

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

    1. LambdaQueryWrapper wrapper = new QueryWrapper().lambda();
    2. wrapper.eq(BannerItem::getBannerId, id);
    3. List bannerItems = bannerItemMapper.selectList(wrapper);

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

    1. LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
    2. wrapper.eq(BannerItem::getBannerId, id);
    3. List bannerItems = bannerItemMapper.selectList(wrapper);
    • 链式查询

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

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

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

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

     转载:MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用_简单随风的博客-CSDN博客_lambdaquerywrapper

  • 相关阅读:
    Linux中用嵌套方式打印
    通过IDEA解决spring配置文件
    golang的循环引用解决方法
    SegGPT: Segmenting Everything In Context论文笔记
    【虹科案例】​使用虹科数字化仪测量遥远恒星的直径
    [UE虚幻引擎插件介绍] DTSQLite 插件说明 :蓝图操作SQLite3文件,执行SQL语句。
    记一次 .NET某管理局检测系统 内存暴涨分析
    拆点____ 行车路线
    探秘Kafka背后的幕后机关,揭示消息不丢失或重复的原理与实践经验
    MyBatis resultMap元素的用途是什么呢?
  • 原文地址:https://blog.csdn.net/pyd1040201698/article/details/126020403
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号