Mybatis 动态SQL删除操作

实现动态删除多个数据,这里我们需要用到 foreach 标签,这个标签还可以运用到批量插入,反正需要对集合进行遍历时就可以使用该标签,标签有如下属性 :

Mybatis 动态SQL删除操作_第1张图片

新建了一个 userInfo2Mapper 接口,然后写下如下代码,声明 batchDelete 方法

package com.example.mybatisdemo.mapper;
import com.example.mybatisdemo.model.UserInfo;
import org.apache.ibatis.annotations.*;
import java.util.List;

@Mapper
public interface UserInfo2Mapper {

    Integer batchDelete(@Param("ids")List ids);
}

 在resources 中创建 Userinfo2XMLMapper.xml 文件




    
    
        delete from userinfo
        where id in
        
            #{id}
        
    

再回到接口,然后Generate,test,勾选 batchDelete,ok,然后补充代码

package com.example.mybatisdemo.mapper;

import com.example.mybatisdemo.model.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;

import static org.junit.jupiter.api.Assertions.*;

@Slf4j
@SpringBootTest
class UserInfo2MapperTest {
    @Autowired
    private UserInfo2Mapper userInfo2Mapper;


    @Test
    void batchDelete() {
        userInfo2Mapper.batchDelete(Arrays.asList(11,12,13,14));

    }
}

Mybatis 动态SQL删除操作_第2张图片

 再打开数据库查看,没毛病,11~14的数据都删了Mybatis 动态SQL删除操作_第3张图片

你可能感兴趣的:(mybatis,sql,数据库)