sql注解批量删除

1.查询语句

@Select({"<script>
    select * from user where name in(
    <foreach collection='list' item='name' separator=','>
        #{name}
    </foreach>)
</script>"})
@Result(property="userId",column="user_id")
List<UserVo> listById(List<String> name);

2.批量删除语句

<!--
        需求: 批量删除多个数据
        难点: 如果使用#{集合}获取的是集合对象的整体.删除无效.
        思路: 将数组拆分为单个数据. 可以通过遍历的方式操作
        语法: mybatis为了参数取值方便,特意封装了遍历的标签 foreach
        关于标签参数说明:
            <foreach collection=""></foreach>
            1.如果传递的参数是数组,     则collection="array"
            2.如果传递的参数是list集合, 则collection="list"
            3.如果传递的参数是Map集合,  则collection="map中的key"

        标签属性说明:
            1.collection 集合的名称
            2.item 每次遍历的数据的形参变量
            3.open 循环的开始标签
            4.close 循环的结束标签
            5.index 循环遍历下标 一般不用
            6.separator 循环遍历的分割符
    -->
    <delete id="deleteIds">
        delete from demo_user where id in (
            <foreach collection="array" item="id" separator=",">
                #{id}
            </foreach>

        )
    </delete>



或者注解的形式
@delete({"  <script>
            delete from user where id in(
            <foreach collection="list" item="id" separator=",">
                #{id}
            </foreach>)
            </script>
      "})
int deleteById(List<Integer> id);

3.Mybatis 批量删除语句

mapper:  

 int deleteById(List<String> userId);


mapper.xml:

    <delete id="deleteById">
        delete from cart where user_id in(
        <foreach collection="list" item="userId" separator=",">
            #{userId}
        </foreach>
        )
    </delete>

Controller :

    @PostMapping("/delete")
    @ApiOperation("删除")
    public String deleteById(@RequestParam(value = "cartDTO",required=false) 
                                        List<String> cartDTO){
        service.deleteById(cartDTO);
        return "删除成功!";
    }

4.Mybatis 批量查询

mapper :
 List<CartVo> selectById(List<String> userId);

mapper.xml :

   <select id="selectById" resultMap="ResMap">
        select * from cart where user_id in
            <foreach collection="list" item="userId" open="(" separator="," close=")">
                #{userId}
            </foreach>
    </select>

测试 :
    @Test
    void textCart02() {
        List<String> list = new ArrayList<>();
            list.add("刻晴");
            list.add("可莉");
          List<CartVo> cartVos = mapper.selectById01(list);
          cartVos.forEach(System.out::println);

    }

以上都是用于List 方式 ,当然跟上面相同的方式还有 Array 方法 也是比较相同的

还有一个类似的Map方式 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值