当前位置: 首页 > article >正文

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

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

二 : 删除在列表的页面

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);
    }


http://www.kler.cn/a/444692.html

相关文章:

  • 六大基础深度神经网络之CNN
  • 探索 .idea 文件夹:Java Maven 工程的隐形守护者
  • Hutool 发送 HTTP 请求的几种常见写法
  • 计算机网络|数据流向剖析与分层模型详解
  • Browser Use:AI智能体自动化操作浏览器的开源工具
  • `libaio-dev` 是什么?为什么需要安装它?
  • 【机器学习】机器学习的基本分类-强化学习-REINFORCE 算法
  • 带渐变边框的图(uniapp版本+uview)
  • 使用idea进行maven项目打war包
  • 【Linux】UDP通信
  • AOI外观缺陷检测机
  • unordered_map和unorderset_set的使用
  • Dot Foods EDI 需求分析及对接流程
  • Java爬虫大冒险:如何征服1688商品搜索之巅
  • 自然语言处理的不同流派
  • 冬日养仓鼠小指南:温暖与陪伴同行
  • 【LeetCode】将有序数组转换为二叉搜索树
  • 虚幻引擎游戏开发系列专题-官方编码标准或规约
  • 初阶3 链表
  • Java算法题-前缀和
  • 【证书】免费的证书+1 Ai Prompt Engineer
  • 【Unity基础】AudioSource 常用方法总结
  • 第J9周:Inception v3算法实战与解析
  • Linux限制root 用户的远程登录(安全要求)
  • 经典问题---跳跃游戏II(贪心算法)
  • QT:QDEBUG输出重定向和命令行参数QCommandLineParser