如何实现淘淘商城中的商品规格模板删除这一操作

    最近在跟着学的项目,回过头来发现商品规格模板这一操作并未完成,特开此帖,记录实现过程。

    

起初状态是这样:选中需要删除的规格参数模板会出现404错误,我们浏览器F12打开这个请求进行下分析。

请求的URL:/item/param/delete

请求方式:POST

请求的参数:? 往下翻一下就可以看到了 

    

这个过程简单来说就是:选中的规格参数的ID作为参数传入了后台处理,实际上就是要去根据ID删除表tb_item_param的几行数据。

再来看item-param-list.jsp中:

若未选中任何规格参数模板,会弹出相应提示。 ids.length == 0

选中规格参数模板,就会提示,是否需要删除选中的规格参数模板?

请求连接和参数很明显已经指出了,这里需要说明下,传入的不是单个Long类型的数据,存在多项删除!!!

此时,我们需要去接收时需要注意。

Controller层:

/*
    * 商品规格参数模板的删除
    * */
    @RequestMapping("/delete")
    @ResponseBody
    public TaotaoResult deleteItemParam(@RequestParam("ids") List<Long> ids){
        //测试下传输过来的参数是否正确
        for (int i = 0; i < ids.size(); i++) {
            System.out.println(ids.get(i));
        }
        System.out.println(ids.size());
        return itemParamService.deleteItemParam(ids);
    }    

需要注意

1.@RequestMapping中的value进行了简化处理

2.@RequsetParam("ids") 必须和前台页面请求的参数名称相同

3.这里采用了List进行存储,存储的数据均为Long类型,参照数据表tb_item_param

4.返回值采用给定的自定义返回体TaotaoResult

Service层:

        //删除商品规格模板
	public TaotaoResult deleteItemParam(List<Long> ids);
        /*
	* 删除已经存在的商品规格模板
	* */
	@Override
	public TaotaoResult deleteItemParam(List<Long> ids) {
		/*
		* 按照主键进行商品删除 --- 不可行 存在多项删除
		* 由于Mybatis逆向工程生成的SQL为单表简单查询,这里我们去构造一个多项删除的SQL语句
		* */
		int result = itemParamMapper.deleteBatch(ids);
		//System.out.println(result);
		if(result > 0){
			return  TaotaoResult.ok(ids);
		}
		return TaotaoResult.ok();
	}

1.deleteBatch方法是我们手动构造的,用于实现多项删除,语句模板如下:

delete from table_name where column_name in (data1,data2,data3);

2.数据删除操作返回的应该是int类型的影响记录数,若为0便是并未进行删除,n为受影响的行数。

3.若删除操作成功,返回数据中带有所删除规格参数模板ID。反之,不存在任何数据。

Dao层:

进入Mapper.xml文件进行构造多项删除SQL语句:

<!-- 批量删除商品规格模板 -->
  <delete id = "deleteBatch" parameterType = "java.util.List">
       delete from tb_item_param where id in
    <foreach collection="list" item = "data" open="(" separator="," close=")">#{data}
    </foreach>
  </delete>

id:对应方法名

parameterType:参数类型 -- List

collection:list 、array(也可以用数组)

item:list中元素命名

#{data}:获取元素数据

这里用到了foreach循环,循环List中的携带参数,从而拼装多项删除SQL语句

open:语句开始符

separator:分隔符

close:语句闭合符号

测试:删除ID为23,24的商品规格参数模板

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小透明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值