在Mapper.xml中使用mybatisplus的QueryWrapper

在xml中,要根据id批量查询,需要使用foreach循环collection,foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。

在mybatisPlus中,简便的做法:可以将queryWrapper作为参数传递到Mapper中

第一步:构建QueryWrapper对象,实质上通过in已经构建出了查询符合id的条件语句

 QueryWrapper queryWrapper = new QueryWrapper<>();
   queryWrapper.lambda().eq(OmsCartItem::getMemberId,currentMember.getId())
                .in(OmsCartItem::getId,paramDTO.getItemIds());
        // 根据购物车id查询所有购物车信息
List cartItemStockByIds = cartItemMapper.getCartItemStockByIds(queryWrapper);

第二步:在自定义xml查询 结合mp的Wrapper 来使用:把wrapper作为参数传递,注意添加注解@Param(Constants.WRAPPER) Wrapper

/**
 *  在自定义xml查询 结合mp的Wrapper 来使用
 * @param ew
 * @return
 */
List getCartItemStockByIds(@Param(Constants.WRAPPER) Wrapper ew);

第三步:通过${ew.customSqlSegment}可以获取mybatisPlus的条件构造器wrapper生成的条件语句,不需要动态拼接条件来筛选


你可能感兴趣的:(java,spring,boot,mybatis)