前言
最近在使用mybatis做项目中,遇到了很多问题比如说:
mybatis关联查询
mybatis批量删除。
今天就来说一说mybatis批量删除。
正文
使用数组进行批量删除
mapper.java
int deletePhotoByArray(String[] photos);
mapper.xml
<delete id="deletePhotoByArray" parameterType="java.lang.String">
DELETE FROM t_areaphoto WHERE Id in
<foreach collection="array" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
说明
知道元素的属性
使用数组删除需要用到mybatis的动态sql中的foreach,官方文档如下图所示:
我们很容易知道collection属性可以指代list,array,map.entry
list的方式和array方式一致,只需要修改collection的值即可
使用map删除
mapper.java
//map的属性集
Map<String,String[]> rooms = new HashMap<String, String[]>();
roomsId.put("roomsId",id);
//mapper接口
int deleteRoomById(Map<String, String[]> rooms);
mapper.xml
<delete id="deleteRoomById" parameterType="map">
DELETE FROM t_room WHERE Id in
<foreach collection="roomsId" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
说明
和上述的数组差不多,只是此处的collection指的是map里面具体某一个key
结语
如有问题欢迎留言和私信
与君共勉!