MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用詳解
假如我們有一張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();
到此這篇關於MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用詳解的文章就介紹到這瞭,更多相關MyBatis-Plus QueryWrapper及LambdaQueryWrapper 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MyBatisPlus超詳細分析條件查詢
- MyBatis-Plus實現條件查詢的三種格式例舉詳解
- Mapper層繼承BaseMapper<T>需要引入的pom依賴方式
- Mybatis Plus QueryWrapper復合用法詳解
- mybatis-plus中BaseMapper入門使用