1. Book实体类:

public class Book { private String name; private String ISBN; private int price;

// getter and setter methods
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getISBN() {
    return ISBN;
}
public void setISBN(String iSBN) {
    ISBN = iSBN;
}
public int getPrice() {
    return price;
}
public void setPrice(int price) {
    this.price = price;
}

}

  1. DBUtil类:

public class DBUtil { // 连接数据库的代码 public static Connection getConnection() { Connection conn = null; String url = "jdbc:mysql://localhost:3306/mydb"; String user = "root"; String password = "password"; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, user, password); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } return conn; } }

  1. BookDao类:

import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List;

public class BookDao { public List getAllBooks() { List books = new ArrayList<>(); Connection conn = DBUtil.getConnection(); String sql = "SELECT * FROM book"; try { PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); while(rs.next()) { Book book = new Book(); book.setName(rs.getString("name")); book.setISBN(rs.getString("ISBN")); book.setPrice(rs.getInt("price")); books.add(book); } } catch (SQLException e) { e.printStackTrace(); } return books; }

public void addBook(Book book) {
    Connection conn = DBUtil.getConnection();
    String sql = "INSERT INTO book(name, ISBN, price) VALUES(?,?,?)";
    try {
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, book.getName());
        ps.setString(2, book.getISBN());
        ps.setInt(3, book.getPrice());
        ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

public void deleteBook(String ISBN) {
    Connection conn = DBUtil.getConnection();
    String sql = "DELETE FROM book WHERE ISBN=?";
    try {
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, ISBN);
        ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

public void updateBook(Book book) {
    Connection conn = DBUtil.getConnection();
    String sql = "UPDATE book SET name=?, price=? WHERE ISBN=?";
    try {
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, book.getName());
        ps.setInt(2, book.getPrice());
        ps.setString(3, book.getISBN());
        ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

public Book getBookByISBN(String ISBN) {
    Book book = null;
    Connection conn = DBUtil.getConnection();
    String sql = "SELECT * FROM book WHERE ISBN=?";
    try {
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, ISBN);
        ResultSet rs = ps.executeQuery();
        if(rs.next()) {
            book = new Book();
            book.setName(rs.getString("name"));
            book.setISBN(rs.getString("ISBN"));
            book.setPrice(rs.getInt("price"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return book;
}

}

  1. BookService类:

public class BookService { private BookDao bookDao = new BookDao();

public List<Book> getAllBooks() {
    return bookDao.getAllBooks();
}

public void addBook(Book book) {
    bookDao.addBook(book);
}

public void deleteBook(String ISBN) {
    bookDao.deleteBook(ISBN);
}

public void updateBook(Book book) {
    bookDao.updateBook(book);
}

public Book getBookByISBN(String ISBN) {
    return bookDao.getBookByISBN(ISBN);
}

}

  1. BookController类:

import java.io.IOException; import java.util.List;

import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;

public class BookController extends HttpServlet { private BookService bookService = new BookService();

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String action = req.getParameter("action");
    if(action == null) {
        List<Book> books = bookService.getAllBooks();
        req.setAttribute("books", books);
        req.getRequestDispatcher("book-list.jsp").forward(req, resp);
    } else if(action.equals("delete")) {
        String ISBN = req.getParameter("ISBN");
        bookService.deleteBook(ISBN);
        resp.sendRedirect(req.getContextPath() + "/book");
    } else if(action.equals("edit")) {
        String ISBN = req.getParameter("ISBN");
        Book book = bookService.getBookByISBN(ISBN);
        req.setAttribute("book", book);
        req.getRequestDispatcher("book-update.jsp").forward(req, resp);
    }
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String action = req.getParameter("action");
    if(action == null) {
        String name = req.getParameter("name");
        String ISBN = req.getParameter("ISBN");
        int price = Integer.parseInt(req.getParameter("price"));
        Book book = new Book();
        book.setName(name);
        book.setISBN(ISBN);
        book.setPrice(price);
        bookService.addBook(book);
        resp.sendRedirect(req.getContextPath() + "/book");
    } else if(action.equals("update")) {
        String name = req.getParameter("name");
        String ISBN = req.getParameter("ISBN");
        int price = Integer.parseInt(req.getParameter("price"));
        Book book = new Book();
        book.setName(name);
        book.setISBN(ISBN);
        book.setPrice(price);
        bookService.updateBook(book);
        resp.sendRedirect(req.getContextPath() + "/book");
    }
}

}

  1. book-list.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

图书列表
图书名 ISBN 价格 操作
${book.name} ${book.ISBN} ${book.price} 编辑 删除
新增图书
  1. book-add.html:
新增图书



  1. book-update.jsp:
更新图书



原文地址: https://www.cveoy.top/t/topic/g09C 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录