JavaWeb学习-案例练习-图书管理后台-5- 完成图书删除功能

继续来做案例练习,本篇学习如何删除图书,也就是在list.jsp页面的图书列表中,点击删除按钮,这条图书记录信息就从列表消失,然后相当于刷新当前页面,列表就少了一条图书记录。

1.需求场景

例如把Python入门这本书删除。

 

2.思路分析

还是画一个图,和前面一样。

红圈就是我们本篇的内容,简单来说,点击删除这个链接,需要把该图书的id传进去,然后跳转到一个delBookServlet的servlet,然后Dao层执行delete语句,最后跳转到BookListServlet再查询一下图书数据,显示list.jsp页面上。

 

3.代码实现

3.1 修改list.jsp中删除链接的跳转信息

项目中找到/admin/products/list.jsp, 大概在140-145行代码附件,给这个删除图片条件跳转链接。

<td align="center" style="HEIGHT: 22px" width="7%"><a
 href="${pageContext.request.contextPath}/delBookServlet?id=${b.id}">			
<img									

src="${pageContext.request.contextPath}/admin/images/i_del.gif"	
width="16" height="16" border="0" style="CURSOR: hand">
</a>
</td>

3.2 创建一个空的delBookServlet文件

Eclipse上右键菜单选择servlet,会自动配置web.xml

3.3 Dao层添加执行删除的sql语句

在BookDao接口中添加如下方法(原有基础上新增)

/**
	 * 根据id删除图书
	 * @param id
	 * @return
	 * @throws SQLException
	 */
	public void delBook(String id) throws SQLException;

BookDaoImpl.java新增实现方法

    public void delBook(String id) throws SQLException {
		QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
		qr.update("delete from book where id=?", id);
	}

3.4 service添加删除图书方法

BookService接口添加如下方法

public void delBook(String id);

BookServiceImpl.java新增如下方法

    public void delBook(String id) {
		try {
			bd.delBook(id);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}

3.4 DelBookServlet完整代码

package com.anthony.web.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.anthony.service.BookService;
import com.anthony.service.BookServiceImpl;


public class DelBookServlet extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		BookService bs = new BookServiceImpl();
		bs.delBook(id);
		
		//转发
		request.getRequestDispatcher("/bookListServlet").forward(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

3.5测试

测试就不贴结果,练习了好几次这样的练习,我一次性就写对了删除功能的代码,没有任何错误和调试过程。但是这么做有一点不友好,万一点错了也进行删除,所以需要添加一个询问用户是否确认要删除的弹窗。

这个效果是这实现的。

先写一个js代码,一个函数,然后在点击删除图片这里调用这个js代码就可以。

function delBook(id){
		if(confirm("是否确定删除图书?"+id)){
			location.href="${pageContext.request.contextPath}/delBookServlet?id=" + id;
		}
	}

上面这段代码大概写16行到20行之间,然后140行附近这个跳转代码这样写。

<td align="center" style="HEIGHT: 22px" width="7%"><a
										
href="javascript:delBook('${b.id }')">
<img
											
src="${pageContext.request.contextPath}/admin/images/i_del.gif"										

width="16" height="16" border="0" style="CURSOR: hand">

 

在系统中,读者创建账户,账户内存储读者个人的详细信息,读者可以凭借借书卡号:readerid在系统进行图书的查询、借阅、还书操作,完成借书的同时要修改相应图书信息的状态、读者信息中的已借数量、在借阅表中添加书籍、 读者信息管理:读者信息的修改 读者注销账户跳回首页 图书信息管理:包括图书信息添加 查询 修改功能。管理员登录成功后,可以浏览所有图书信息和搜索特定图书的信息---搜索出来的可以进行添加图书删除图书以及修改图书信息。 图书借阅管理:包括图书借阅和归还功能图书借阅功能:先输入读者编号,然后输入要借阅图书的信息,记录系统当前时间即借阅时间borrowdate和归还时间returndate 图书归还功能:先输入读者编号,然后输入要还图书的信息,记录系统当前时间即归还时间returndate; 删除借阅信息,更改管理日志表whether 用户修改个人信息——实现功能 用户通过点击右上角用户名,跳转到个人页面,个人页面显示个人的详细信息,点击修改按钮跳转到修改页面,修改页面回显个人详细信息。修改后点击确定。 成功——弹出成功信息,跳回个人页面并更新列表 失败——弹出失败信息,跳回个人页面。 用户查询信息——实现功能 用户通过点击右上角用户名,跳到个人页面,个人页面显示个人的详细信息(只显示不修改) 三、功能需求 功能划分:该系统主要有以下功能:浏览功能,查询功能,添加功能,修改功能删除功能功能描述详解:①浏览 列出当前数据库中的图书信息、读者信息、借阅信息和还书信息(管理员日志)、 ②查 按照图书编号进行查询书籍信息、读者编号进行查询读者信息、借还界面查询书目与读者匹配信息 ③增 添加图书和读者记录、 借书和还书记录(管理日志) ④改 修改书目和读者信息及管理员信息、 读者借阅和归还图书在管理员日志上的变动及在图书信息表上的变动 ⑤删 删除书目和读者信息及管理员信息 ⑥各种弹框制定 ⑦运用CSS对页面进行显示处理 ⑧网页布局采用封面型布局
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值