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);
// 现在也被封装到ServiceImpl的list方法里面
// List<BannerItem> bannerItems = serviceImpl.list(wrapper);
次に、ラムダを導入して、コードに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
ラムダの使用を簡素化するために、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でクエリするなど、1つのレコードのみをクエリする場合は、たとえば.one()を使用します。
BannerItem bannerItem = new LambdaQueryChainWrapper<>(bannerItemMapper)
.eq(BannerItem::getId, id)
.one();