Uso de MyBatis-Plus QueryWrapper y LambdaQueryWrapper

Inserte la descripción de la imagen aquí

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();

 

Supongo que te gusta

Origin blog.csdn.net/zw764987243/article/details/114286053
Recomendado
Clasificación