mybatise+oracle使用sql语句实现级联批量删除

来源:互联网 发布:unity游戏优化 编辑:程序博客网 时间:2024/06/05 20:29

设置数据库级联删除比较麻烦,所以直接用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>
原创粉丝点击