一个简单的MVC方式的图书查询系统
要求为输入图书的关键字从而查询出符合条件的图书
Bean包
创建Book类
package bean;
/**
*
* @author haozhen
*/
public class Book {
private String bookid;
private String bookname;
private String price;
@Override
public String toString() {
return "Book{" + "bookid=" + bookid + ", bookname=" + bookname + ", price=" + price + '}';
}
public String getBookid() {
return bookid;
}
public void setBookid(String bookid) {
this.bookid = bookid;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
}
Controller包
创建BooksServlet的Servlet类
package controller;
import bean.Book;
import dao.BookDao;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author haozhen
*/
public class BookServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String name = req.getParameter("name");
BookDao bookDao = new BookDao();
try {
ResultSet rs = bookDao.query("select * from tb_book where bookname like '%"+name+"%'");
List<Book> bookList = new ArrayList<>();
while (rs.next()) {
Book book = new Book();
String bookid = rs.getString("bookid");
String bookname = rs.getString("bookname");
String price = rs.getString("price");
book.setBookid(bookid);
book.setBookname(bookname);
book.setPrice(price);
System.out.println(book);
bookList.add(book);
}
req.setAttribute("bookList", bookList);
req.getRequestDispatcher("/result.jsp").forward(req, resp);
} catch (SQLException ex) {
Logger.getLogger(BookServlet.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Dao包
创建BookDao类
package dao;
import bean.Book;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author haozhen
*/
public class BookDao {
private static String DBDriver = "com.mysql.jdbc.Driver";
private static String DBUrl = "jdbc:mysql://localhost:3306/book1?serverTimezone=UTC&characterEncoding=UTF-8";
private static String DBUse = "root";
private static String DBPassword = "123456";
public static Connection conn = null;
public ResultSet rs = null;
static {
try {
//加载驱动
Class.forName(DBDriver);
//连接到数据库
conn = DriverManager.getConnection(DBUrl,DBUse,DBPassword);
} catch (SQLException | ClassNotFoundException throwables) {
throwables.printStackTrace();
}
}
public ResultSet query(String sql) throws SQLException {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
return rs;
}
}
创建图书查询页面
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>图书查询系统</title>
</head>
<body>
<form action="/BookServlet" method="post">
<P>
请输入想要查询图书的关键字:<input type="text" name="name">
<input type="submit" value="确认" name="sum1">
</P>
</form>
</body>
</html>
查询显示页面
result.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查詢結果</title>
</head>
<body>
<h1>符合條件的圖書信息:</h1>
<c:forEach var="book" items="${bookList}">
${book.bookid}
${book.bookname}
${book.price}
<br>
</c:forEach>
<a href="index.jsp">返回查询页面</a>
</body>
</html>