Si tenemos una tabla banner_item, ahora necesitamos averiguar todos los datos a través de banner_id (lista de consultas)
@Data
public class BannerItem {
private Long id;
private String name;
private String img;
private String keyword;
private Integer type;
private Long bannerId;
}
QueryWrapper
La forma más básica de usarlo es así
// constructor de condición de consulta
QueryWrapper<BannerItem> wrapper = new QueryWrapper<>();
wrapper.eq("banner_id", id);
// 查询操作
List<BannerItem> bannerItems = bannerItemMapper.selectList(wrapper);
// 现在也被封装到ServiceImpl的list方法里面
// List<BannerItem> bannerItems = serviceImpl.list(wrapper);
Luego podemos introducir lambda para evitar que escribamos un código duro similar a banner_id en el código.
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
Para simplificar el uso de lambda, podemos reescribir el constructor LambdaQueryWrapper, la siguiente sintaxis:
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);
Podemos simplificar el QueryWrapper <BannerItem> .lambda () nuevamente para que se vea así
LambdaQueryWrapper<BannerItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(BannerItem::getBannerId, id);
List<BannerItem> bannerItems = bannerItemMapper.selectList(wrapper);
// 现在也被封装到ServiceImpl的list方法里面
// List<BannerItem> bannerItems = serviceImpl.list(wrapper);
Consulta en cadena
MyBatis-Plus también proporciona un método de consulta en cadena, que tiene el mismo efecto que el código anterior.
Sin embargo, este método de escritura tiende a mostrar habilidades y la legibilidad no es tan fuerte como el código anterior. Puede elegir el método de acuerdo a sus necesidades.
List<BannerItem> bannerItems = new LambdaQueryChainWrapper<>(bannerItemMapper)
.eq(BannerItem::getBannerId, id)
.list();
Si solo desea consultar un registro, como consultar los detalles de un determinado registro por id, use .one (), por ejemplo
BannerItem bannerItem = new LambdaQueryChainWrapper<>(bannerItemMapper)
.eq(BannerItem::getId, id)
.one();