SpringMVC(18) —— SSM整合:修改和删除书籍功能


1.修改数据

  • 修改原理:就是按照书籍的ID进行修改
  • 在数据展示页面添加修改跳转链接
    在这里插入图片描述

在这里插入图片描述

  • 添加删除视图跳转controller的方法
    注意:我们修改的时候应该将原来的数据展示在修改页面上,用户要修改什么直接填上新的值再提交即可,所以跳转修改页面的时候我们应该传递这一条数据对应的ID,然后在跳转视图之前按照ID把数据查出来,并通过model对象将数据返回
        @RequestMapping("/updateBook")
       public String updateBookPage(int id,Model model){//跳转新增书籍的视图
           Books books = service.queryBookById(id);
           model.addAttribute("books",books);
           return "updateBook";
       }
    
  • 创建修改视图updateBook.jsp
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
        <%--bootstrap--%>
        <%--直接在线引入css文件--%>
        <link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <div class="container"><%--栅格系统--%>
        <div class="row clearfix">
            <div class="col-md-12 column"><%--将屏幕分为12份--%>
                <div class="page-header">
                    <h1>
                        <small>修改书籍</small>
                    </h1>
                </div>
            </div>
        </div>
        <form action="${pageContext.request.contextPath}/book/updateBooks" method="post">
            <input type="hidden" value="${books.bookID}" name="bookID"><%--精妙之处:巧用隐藏域传递修改的id--%>
            <div class="form-group">
                <label for="bookName">书籍名称</label>
                <input type="text" class="form-control" id="bookName" name="bookName" required value="${books.bookName}">
            </div>
            <div class="form-group">
                <label for="bookCounts">书籍数量</label>
                <input type="text" class="form-control" id="bookCounts" name="bookCounts" required value="${books.bookCounts}">
            </div>
            <div class="form-group">
                <label for="detail">书籍描述</label>
                <input type="text" class="form-control" id="detail" name="detail" required value="${books.detail}">
            </div>
            <button type="submit" class="btn btn-default">修改书籍</button>
        </form>
    </div>
    </body>
    </html>
    
    注意我们修改书籍信息的原理:按照ID修改,所以在向controller提交数据的时候我们需要巧用隐藏域将数据对应的ID也提交过去,否则是不能对数据库中的数据进行修改的
    在这里插入图片描述
  • 编写修改书籍信息的controller
        @PostMapping("/updateBooks")
        public String updateBook(Books books){
            System.out.println("updateBook==>"+books);
            service.updateBook(books);
            return "redirect:/book/allBook";//直接重定向上面的处理方法,实现了请求复用
        }
    
    在这里插入图片描述
    注意:在最后还是使用的重定向,将视图重定向到展示所有数据的页面
  • 测试
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.删除数据

  • 删除功能相对实现起来简单一些,因为不涉及任何视图界面,我们只需要传递ID并在controller中调用service中的删除操作即可
     <a href="${pageContext.request.contextPath}/book/deleteBook?id=${book.bookID}">删除</a>
    
        @RequestMapping("/deleteBook")
        public String deleteBook(int id){
            System.out.println("deleteBook==>接收的ID = "+id);
            service.deleteBookById(id);
            return "redirect:/book/allBook";
        }
    

在这里插入图片描述
在这里插入图片描述


3.日志

    其实上面传递ID来修改数据使用隐藏域的做法很容易被忘记,造成我们只是传递了书籍名称、数量和详情,但是没有传递指定修改的ID而无法修改的情况
对于这种容易忘记的情况,我们可以开启mybatis中的日志,无论是正常的普通日志还是log4j日志都可以
    只要开启了日志,每一句执行的SQL和对应的结果都会在控制台打印输出,这样我们就可以看到我们在前端进行的操作在底层到底是怎么执行的了
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值