多条件批量删除

//Biz层

List> deleList=userRoleOrgDAL.selectForDele(deleIDList);//通过id获取ROLE_ID,ORG_ID作为后续删除条件
        Map[] array = toArray(deleList);//调用方法将deleList获取到条件组合的map
        Boolean isSuccess=userRoleOrgDAL.userRoleOrgDele(deleList, array);//oracle层执行批量删除


 //Biz中调用的方法,将带有双参数的List>集合转换成双参数的数组

public Map[] toArray(List> urpList){
        List> list = new ArrayList<>();
        for(Map urpMap:urpList){
            Map map = new HashMap();
            map.put("USER_ID",urpMap.get("USER_ID"));
            map.put("ROLE_ID",urpMap.get("ROLE_ID"));
            map.put("ORG_ID",urpMap.get("ORG_ID"));
            list.add(map);
        }
        return ((Map[]) list.toArray(new Map[list.size()]));
    }


 //oracle层

public List> selectForDele(List deleList) {
        StringBuffer sql=new StringBuffer();
        sql.append("select USER_ID,ROLE_ID,ORG_ID from T_CCPC_DB_URP where ID in (:IDS)");
        Map paramMap = new HashMap();
        paramMap.put("IDS", deleList);
        List> queryForList = jdbcTemplate.queryForList(sql.toString(), paramMap);
        return queryForList;
    }

public Boolean userRoleOrgDele(List deleList,Map[] array) {                                                                                            //根据带有双参数的数组,一一对应到sql语句中的两个参数
        StringBuffer sql=new StringBuffer();
        sql.append("delete from T_EAP_SYS_ROLE_USER where ROLE_ID in :ROLE_ID and USER_ID in :USER_ID ");
        int[] isDele = jdbcTemplate.batchUpdate(sql.toString(), array);
        return isDele>0? true:false;
    }

你可能感兴趣的:(多条件批量删除)