entity层和DBUtil层同增的操作,今天是删除操作(代码部分加上之前的):
dao层:
package dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import DBUtil.DBUtil;
import entity.Book;
import entity.Lendbook;
public class Dao {
//根据书的姓名查找
public Book getbyname(String bname) {
String sql = "select * from Book where bname ='" + bname + "'";
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null;
Book b = null;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String bianhao = rs.getString("bianhao");
String bname2 = rs.getString("bname");
String wname = rs.getString("wname");
String bhome=rs.getString("bhome");
int num = rs.getInt("num");
b = new Book(id,bianhao,bname2,wname,bhome,num);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
}
return b;
}
//添加新书信息
public boolean addBook(Book stu) {
Connection conn = DBUtil.getConn();
PreparedStatement pstmt = null;
boolean f = false;
int a = 0;
try {
String sql = "insert into Book(bianhao,bname,wname,bhome,num) value(?,?,?,?,?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, stu.getBianhao());
pstmt.setString(2, stu.getBname());
pstmt.setString(3, stu.getWname());
pstmt.setString(4, stu.getBhome());
pstmt.setLong(5, stu.getNum());
a = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(pstmt, conn);
}
if (a > 0)
f = true;
return f;
}
//删除图书信息,根据书名删除
public boolean deleteBook(String bname)
{
String sql="delete from Book where bname='" + bname + "'";
Connection conn = DBUtil.getConn();
Statement state = null;
int a = 0;
boolean f = false;
try {
state = conn.createStatement();
a = state.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(state, conn);
}
if (a > 0) {
f = true;
}
return f;
}
//浏览图书信息
public List<Book> liulanbook() {
String sql = "select * from Book";
List<Book> list = new ArrayList<>();
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
Book bean = null;
while (rs.next()) {
int id = rs.getInt("id");
String bianhao = rs.getString("bianhao");
String bname = rs.getString("bname");
String wname = rs.getString("wname");
String bhome=rs.getString("bhome");
int num = rs.getInt("num");
bean = new Book(id,bianhao,bname,wname,bhome,num);
list.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
}
return list;
}
}
servlet层:
package servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dao.Dao;
import entity.Book;
@WebServlet("/Servlet")
public class Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Dao dao = new Dao();
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String method = req.getParameter("method");
if ("addBook".equals(method)) {
addBook(req, resp);
} else if ("liulanbook".equals(method)) {
liulanbook(req, resp);
} else if ("getbyname".equals(method)) {
getbyname(req, resp);
} else if ("deleteBook".equals(method)) {
deleteBook(req, resp);
}
}
private void deleteBook(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
// TODO 自动生成的方法存根
req.setCharacterEncoding("utf-8");
String bname = req.getParameter("bname");
if (dao.deleteBook(bname)) {
req.setAttribute("message", "删除成功");
req.getRequestDispatcher("Servlet?method=liulanbook2").forward(req, resp);
} else {
req.setAttribute("message", "删除失败");
req.getRequestDispatcher("Servlet?method=liulanbook2").forward(req, resp);
}
}
private void addBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String bianhao = req.getParameter("bianhao");
String bname = req.getParameter("bname");
String wname = req.getParameter("wname");
String bhome = req.getParameter("bhome");
int num = Integer.parseInt(req.getParameter("num"));
Book book = new Book(bianhao, bname, wname, bhome, num);
if (dao.addBook(book)) {
req.setAttribute("book", book);
req.setAttribute("message", "添加成功");
req.getRequestDispatcher("addBook.jsp").forward(req, resp);
} else {
req.setAttribute("message", "书籍信息重复,请重新输入");
req.getRequestDispatcher("addBook.jsp").forward(req, resp);
}
}
private void getbyname(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
req.setCharacterEncoding("utf-8");
String bname = req.getParameter("bname");
Book b=new Book();
b.setBname(bname);
b= dao.getbyname(bname);
if(b==null)
{
req.setAttribute("message", "未找到该书籍");
req.getRequestDispatcher("xiugaiBook.jsp").forward(req, resp);
}
else
{
req.setAttribute("b", b);
req.getRequestDispatcher("xiugai2.jsp").forward(req,resp);
}
}
private void liulanbook(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
req.setCharacterEncoding("utf-8");
List<Book> tens = dao.liulanbook();
req.setAttribute("tens", tens);
req.getRequestDispatcher("list.jsp").forward(req, resp);
}
}
在list页面中,删除功能直接调用函数就可以实现
<td><a href="Servlet?method=deleteBook&bname=${item.bname }" onClick="return confirm('确定删除吗?');">删除</a>
