有三本图书详细信息如下表所示。图书名 ISBN 价格Java开发 01234567 50JavaWeb开发 23456701 100Spirng框架开发 45670123 1501 根据已有信息创建实体类 Book符合 JavaBean 的要求。102 创建 DBUtil以备后续使用。52 创建 BookDao实现增删改查。103 创建 BookService实现增删改查。54 创建 BookCo
- 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;
}
}
- 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; } }
- 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
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;
}
}
- 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);
}
}
- 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");
}
}
}
- book-list.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
| 图书名 | ISBN | 价格 | 操作 |
|---|---|---|---|
| ${book.name} | ${book.ISBN} | ${book.price} | 编辑 删除 |
- book-add.html:
- book-update.jsp:
原文地址: https://www.cveoy.top/t/topic/g09C 著作权归作者所有。请勿转载和采集!