设置数据库级联删除比较麻烦,所以直接用sql语句控制,传入mybatise一个map对象包含需要删除的表名,和需要删除的code
public int deleteBatchs(List<String> list){
Map<String,Object> map = new HashMap<String,Object>();
List<String> newlist = new ArrayList<String>();
newlist.add("这里写需要删除的表名");
newlist.add("这里写需要删除的表名");
map.put("newlist", newlist);
map.put("list", list);
return mapperImpl.deleteBatchs(map);
}
mybatise的xml文件
<update id="deleteBatchs" parameterType="Map">
<foreach collection="newlist" item="item" open="begin" close="end;" >
<if test="item == '表名'">
UPDATE ${item} SET FLAG_DEL=1 WHERE CODE IN
<trim prefix="(" suffix=")" suffixOverrides=",">
<foreach collection="list" item="code" separator=",">
#{code}
</foreach>
</trim>
;
</if>
<if test="item == '表名'">
UPDATE ${item} SET FLAG_DEL=1 WHERE 表_CODE IN
<trim prefix="(" suffix=")" suffixOverrides=",">
<foreach collection="list" item="code" separator=",">
#{code}
</foreach>
</trim>
;
</if>
</foreach>
</update>