Если у нас есть таблица banner_item, нам нужно узнать все данные по banner_id (список запросов)
@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);
Затем мы можем ввести лямбда-выражения, чтобы избежать написания кода, подобногоbanner_id
жестко запрограммированный
QueryWrapper<BannerItem> wrapper = new QueryWrapper<>();
wrapper.lambda().eq(BannerItem::getBannerId, id);
List<BannerItem> bannerItems = bannerItemMapper.selectList(wrapper);
- LambdaQueryWrapper
Для того чтобы упростить использование лямбды, мы можем переписать ее в конструктор 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();
Если вы хотите запросить только запись, например запрос сведений о записи по идентификатору, используйте.one()
может быть, например
BannerItem bannerItem = new LambdaQueryChainWrapper<>(bannerItemMapper)
.eq(BannerItem::getId, id)
.one();