日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用

作者:簡單隨風 更新時間: 2024-03-24 編程語言

假如我們有一張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);

然后我們可以引入lambda,避免我們在代碼中寫類似的于banner_id的硬編碼

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

為了簡化lambda的使用,我們可以改寫成LambdaQueryWrapper構造器,語法如下:

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

我們可以再次將QueryWrapper<BannerItem>.lambda()簡化,變成這個樣子

LambdaQueryWrapper<BannerItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BannerItem::getBannerId, id);
List<BannerItem> bannerItems = bannerItemMapper.selectList(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();

原文鏈接:https://blog.csdn.net/lt326030434/article/details/106571670

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新