项目搭建+删除(单/批)

发布于:2024-12-22 ⋅ 阅读:(147) ⋅ 点赞:(0)

一 : 删除没有单独的页面,在列表页面写

二 : 删除在列表的页面

1.删除(单/双)的按钮

        ① : 在列表文档就绪函数的ajax里面,成功回调函数追加数据里写删除按钮

                注意点 : 删除/修改/回显都是根据id来的,记得传id

        ② : 批删给批删按钮,定义批删的方法

one : 示例(单删) : 
//循环追加表数据
                    for (let x of arr) {
                        $("#table").append(`
                        <tr>
                           <td>
                                <input type="checkbox" class="ck" value="\${x.userId}">
                           </td>
                           <td>\${x.userId}</td>
                           <td>\${x.userName}</td>
                           <td>\${x.userState==0?'启用':'禁用'}</td>
                           <td>
                            <img src="/file/showImg?imgUrl=\${x.imgUrl}" alt="" height="100" width="75">
                            </td>
                           <td>\${x.userDel}</td>
                           <td>\${x.userTime}</td>
                           <td>
                                <input type="button" value="删除" onclick="delOne(\${x.userId})">
                                <input type="button" value="修改" onclick="userUpd(\${x.userId})">
                           </td>
                        /tr>
                        `)
                    }
tow : 示例(批删按钮)
<%--批删按钮--%>
<input type="button" value="批删" onclick="delAll()">

2.给(单删)绑定js事件

        ① : 先判断
        ② : 添加友情提示 : 弹出确认删除的警告框
        ③ : ajax

                        删除走的是路径传参,不用写请求方式,传id

                        删除成功走200,刷新,回列表页面

示例 : 

/**
     * 单删
     */
    function delOne(userId) {
        //判断
        if (!userId){
            alert("请先输入")
            //结束
            return
        }
        if (confirm("确定要删除吗")){
            //ajax
            $.ajax({
                url:"/user/userDel?userId="+userId,
                type:"post",
                dataType: "json",
                success(res) {
                    console.log(res)
                    if (res===200){
                        //刷新
                        location.reload()
                        alert("删除成功")
                        //跳转页面
                        location.href="list.jsp"
                    }
                }
            })
        }
    }

3.给(批删)写js事件

        ① : 定义数组
        ② : 获取选中的复选框
        ③ : 获取选中复选框的值
        ④ : 添加进数组里
        ⑤ : 将数组转换成字符串
        ⑥ : 调用单删的方法
//批删
    function delAll() {
        //定义数组
        let arr=[];
        //获取选中的复选框
        $(".ck:checked").each(function () {
            //获取被选中的复选框的值
            let userId =$(this).val()
            //添加进数组里
            arr.push(userId)
        })
        //将数组转字符串
        let s = arr.join(",");
        //调用单删除方法
        delOne(s)
    }

4.全选/全不选

//全选/全不选
    $(document).on('click',"#check",function () {
        $('.ck').prop("checked",this.checked)
    })

 三 : 删除的Controller

1. 接参 : 接路径传参传过来的id

2. 传给service 带着id传过去

3. 响应 200

        注意点 : 单删/批删走一个Controller,写一个就可以了

示例 : 

/**
     * 删除
     */
    protected void userDel(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //接参
        String userId = req.getParameter("userId");
        //传给service
        service.userDel(userId);
        //响应
        resp.getWriter().println(JSONObject.toJSONString(200));
    }

四 : 删除service层

1.调用dao层方法,处理返回值 (单/批走一个service)

/**
     * 删除
     * @param userId
     */
    @Override
    public void userDel(String userId) {
        //调用方法
        userDao.userDel(userId);
    }

五 : dao层

1.定义sql    2.执行sql

                ① : 单删的sql语句
/**
     * 删除
     * @param userId
     */
    @Override
    public void userDel(String userId) {
        //定义sql  in ("+userId+") 
        String sql="UPDATE t_user SET user_del=1 WHERE user_id=? ";
        //打印
        System.out.println(sql);
        //执行sql
        baseUpdate(sql,userId);
    }
                ② : 批删的sql语句
/**
     * 删除
     * @param userId
     */
    @Override
    public void userDel(String userId) {
        //定义sql
        String sql="UPDATE t_user SET user_del=1 WHERE user_id in ("+userId+") ";
        //打印
        System.out.println(sql);
        //执行sql
        baseUpdate(sql);
    }


网站公告

今日签到

点亮在社区的每一天
去签到