以前看了理论以为很容易就可以实现批量删除,谁知道自己写了才发现错误百出!百度mybatis批量删除,列出来的我没一个跑的通的(不排除是我自己的原因)
下面这种写法我自己测试是通过的!
mybatis配置什么的这里不多提了,不懂也不会看到这个知识点
首先是mapper:
<delete id="delStu" parameterType="java.util.List"> DELETE FROM STUDENT WHERE stuId IN <foreach collection="list" item="item" open="(" separator="," close=")"> #{item} </foreach> </delete>
这里有两点需要注意的,一:参数是java.util.List;
二:collection="list" 小写(不知道为什么是这么写,找了好久(搜狗上找到的)看到一篇这么写的博客,我试一下,跑通了)
接口方法:
public int delStu(List<Integer> stuIds);
测试:
删除之前,上面的数据还在数据库中!
下面是测试方法:
@Test public void test3(){ List<Integer> stuIds = new ArrayList<Integer>(); stuIds.add(30); stuIds.add(31); stuIds.add(32); int result = studentDao.delStu(stuIds); System.out.println(result); }
运行结果:
输出了3,说明删除了3条数据,再看看数据库!
已成功删除!
时间: 2024-11-05 19:12:12