学习:使用 MyBatis-Plus 进行删除操作演示

使用 MyBatis-Plus 进行删除操作演示

问题描述

根据 分组id 删除关联的所有基础属性

Controller 层

@PostMapping("/attr/relation/delete")
// @RequestBody 是将前端传递来的 json 数据封装成 vo 对象
public R deleteRelation(@RequestBody AttrGroupRelationVo[] vos) {
    attrService.deleteRelation(vos);

    return R.ok();
}

Service 层

@Override
public void deleteRelation(AttrGroupRelationVo[] vos) {
    List<AttrAttrgroupRelationEntity> entities = Arrays.stream(vos).map((item) -> {
        AttrAttrgroupRelationEntity relationEntity = new AttrAttrgroupRelationEntity();
        BeanUtils.copyProperties(item, relationEntity);
        return relationEntity;
    }).collect(Collectors.toList());

    // 这个 deleteBatchRelation() 就是要在 MyBatis-Plus 中自定义的方法
    relationDao.deleteBatchRelation(entities);
}

在 MyBatis-Plus 的 ···Dao.java 中定义方法

@Mapper
public interface AttrAttrgroupRelationDao extends BaseMapper<AttrAttrgroupRelationEntity> {
	// @Param("entities") 是将传递过来的参数 entities 定义一个名字,方便后面编写SQL语句使用
    void deleteBatchRelation(@Param("entities") List<AttrAttrgroupRelationEntity> entities);
}

在 MyBatis-Plus 的 ···Dao.xml 中定义SQL语句

<mapper namespace="com.ran.mall.product.dao.AttrAttrgroupRelationDao">

   <!-- 可根据自己的需求,是否要使用 -->
    <resultMap type="com.my.project.product.entity.AttrAttrgroupRelationEntity" id="attrAttrgroupRelationMap">
        <result property="id" column="id"/>
        <result property="attrId" column="attr_id"/>
        <result property="attrGroupId" column="attr_group_id"/>
        <result property="attrSort" column="attr_sort"/>
    </resultMap>

    <!-- 这里是自己定义的SQL语句 id里对应的是上面java里定义的语句 -->
    <delete id="deleteBatchRelation">
        DELETE FROM `pms_attr_attrgroup_relation`
        WHERE
<!-- entities 是方法传递过来的参数,对其进行 foreach 循环,每个对象命名为 item,分隔符为 ` OR ` -->
        <foreach collection="entities" item="item" separator=" OR ">
			<!-- #{item.attrId}:这种是将每个 item 中的属性取出 -->
            (`attr_id` =#{item.attrId} AND `attr_group_id` =#{item.attrGroupId})
        </foreach>
    </delete>

</mapper>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值