实现有无外键的批量删除功能

有外键的批量删除

//jsp文件中
     if (layEvent === 'del') { //删除
                layer.confirm('确定删除该院系?', function (index) {
                //获取院系Id
                    let collegeId = data.collegeId;
                    let collegeName = data.collegeName;
                    alert(collegeId)
                    var url="BaseServlet.do?servlet=MajorManageServlet" +
                        "&method=checkCollege&collegeId="+collegeId;
                
                    $.get(url,function (resp) {
                    //显示有关联的院系
                        if(resp=="false"){
                            layer.alert(collegeName + "--该院系下存在专业,删除失败!",{
                                title:'提示',
                                icon:0
                            })
                        }else if(resp=="true"){
                            $.get("BaseServlet.do?servlet=CollegeManageServlet&" +
                                "method=remove" +
                                "&collegeId="+collegeId)
                        }
                       reload({});//刷新表格
                    })
                    //要向后台请求Ajax,得到后台响应看结果,如果后台删除成功,再del
                    obj.del();
                    layer.close(index);
                    //向服务端发送删除指令
                });
            } 

Servlet层

/**
     * 批量删除
     * @param request
     * @param response
     */
    public void removeAll(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        String ids = request.getParameter("colleges");
        String all = collegeService.removeAll(ids);
        response.getWriter().print(all);
    }

业务层

/**
     * 删除多行记录
     *
     * @param ids
     * @return
     */
    @Override
    public String removeAll(String ids) {
        StringBuffer result = null;
        String[] arr = ids.split(",");
        SqlSession session = Dbutil.getSession();
        if (session != null) {
            try {
               CollegeMapper collegeMapper = session.getMapper(CollegeMapper.class);
                MajorMapper majorMapper = session.getMapper(MajorMapper.class);
                for (String id : arr) {
                    Map<String, Object> conditions = new HashMap<>();
                    // key如何写,取决于SQL语句的判断
                    conditions.put("college", id);
                    int count = majorMapper.selectCount(conditions);
                    // 判断专业有没有被引用
                    if (count == 0) {
                        // 删除的结果
                        int r = collegeMapper.delete(Integer.parseInt(id));
                        if (r != Constants.DB_UPDATE_SUCCESS) {
                            // 失败后要获取名称
                            College college = collegeMapper.selectById(Integer.parseInt(id));
                            if (result == null) {
                                result = new StringBuffer();
                                result.append(college.getCollegeName());
                            }else{
                                result.append(",").append(college.getCollegeName());
                            }
                        }
                    }else{
                        // 在成员表中存在,删除失败,要获取专业名称
                        College college = collegeMapper.selectById(Integer.parseInt(id));
                        // 删除失败的信息
                        if (result == null) {
                            result = new StringBuffer();
                            result.append(college.getCollegeName());
                        }else{
                            result.append(",").append(college.getCollegeName());
                        }
                    }

                }
                session.commit();
            } catch (NumberFormatException e) {
                logger.error(e);
            } finally {
                Dbutil.close(session);
            }
        }
        return result == null ? "" : result.toString();
    }

没有联系可以直接删除的只改一下业务层就可斜体样式以实现了

/**
     * 删除多行记录
     *
     * @param ids
     * @return
     */
    @Override
    public String removeAll(String ids) {
        String[] arr = ids.split(",");
        SqlSession session = Dbutil.getSession();
        if (session != null) {
            try {
                MemberMapper memberMapper = session.getMapper(MemberMapper.class);
                for (String id : arr) {
                    // 删除的结果
                    int r = memberMapper.delete(Integer.parseInt(id));
                }
                session.commit();
            } catch (NumberFormatException e) {
                logger.error(e);
            }
        }
        return ids;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值