Java Web 开发实战:从零开始构建在线图书管理系统

在这个数字化迅速发展的时代,越来越多的实体服务转向了在线平台,图书管理系统便是其中之一。本文将指导你通过 Java Web 技术构建一个简单的在线图书管理系统,从基础开始,让你能够轻松上手并了解相关知识。

项目架构

我们的在线图书管理系统的基本架构如下:

  • 前端:使用HTML、CSS、JavaScript进行页面设计
  • 后端:使用Java Servlet处理HTTP请求
  • 数据库:使用MySQL存储书籍信息

环境搭建

  1. Java开发环境:安装JDK 8以上的版本。
  2. Web服务器:使用Apache Tomcat作为我们的服务器。
  3. 数据库:安装MySQL,并创建一个名为library的数据库。

数据库设计

在开始编写代码之前,我们需要设计数据库表。我们可以创建一个名为books的表,包含以下字段:

CREATE TABLE books (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(100) NOT NULL,
    author VARCHAR(100) NOT NULL,
    publisher VARCHAR(100),
    price DECIMAL(10, 2),
    stock INT DEFAULT 0
);

这个表格将用来存储图书的基本信息。

编写后端代码

我们将创建一个简单的Java Servlet来处理书籍的信息查询和管理。

BookServlet.java

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class BookServlet extends HttpServlet {

    private Connection getConnection() throws SQLException {
        String url = "jdbc:mysql://localhost:3306/library";
        String user = "root"; // 数据库用户
        String password = "your_password"; // 数据库密码
        return DriverManager.getConnection(url, user, password);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Book> books = new ArrayList<>();
        String sql = "SELECT * FROM books";

        try (Connection conn = getConnection();
             PreparedStatement ps = conn.prepareStatement(sql);
             ResultSet rs = ps.executeQuery()) {

            while (rs.next()) {
                Book book = new Book();
                book.setId(rs.getInt("id"));
                book.setTitle(rs.getString("title"));
                book.setAuthor(rs.getString("author"));
                book.setPublisher(rs.getString("publisher"));
                book.setPrice(rs.getBigDecimal("price"));
                book.setStock(rs.getInt("stock"));
                books.add(book);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        request.setAttribute("books", books);
        RequestDispatcher dispatcher = request.getRequestDispatcher("bookList.jsp");
        dispatcher.forward(request, response);
    }
}

Book.java

为了简化我们的数据处理,创建一个Book类来表示书籍实体。

import java.math.BigDecimal;

public class Book {
    private int id;
    private String title;
    private String author;
    private String publisher;
    private BigDecimal price;
    private int stock;

    // Getters 和 Setters
    public int getId() { return id; }
    public void setId(int id) { this.id = id; }
    public String getTitle() { return title; }
    public void setTitle(String title) { this.title = title; }
    public String getAuthor() { return author; }
    public void setAuthor(String author) { this.author = author; }
    public String getPublisher() { return publisher; }
    public void setPublisher(String publisher) { this.publisher = publisher; }
    public BigDecimal getPrice() { return price; }
    public void setPrice(BigDecimal price) { this.price = price; }
    public int getStock() { return stock; }
    public void setStock(int stock) { this.stock = stock; }
}

前端展示

创建一个简单的JSP页面bookList.jsp来展示书籍信息。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>图书列表</title>
</head>
<body>
<h1>图书列表</h1>
<table border="1">
    <tr>
        <th>ID</th>
        <th>书名</th>
        <th>作者</th>
        <th>出版社</th>
        <th>价格</th>
        <th>库存</th>
    </tr>
    <c:forEach var="book" items="${books}">
        <tr>
            <td>${book.id}</td>
            <td>${book.title}</td>
            <td>${book.author}</td>
            <td>${book.publisher}</td>
            <td>${book.price}</td>
            <td>${book.stock}</td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

在这个JSP页面中,我们使用JSTL标签库(需要在项目中导入JSTL)来动态显示数据库中获取到的书籍列表。

启动服务器并测试

  1. 将项目部署到Tomcat服务器上,确保所有的依赖代码都已正确编写。
  2. 启动Tomcat服务器。
  3. 在浏览器中输入http://localhost:8080/YourProjectName/BookServlet,即可查看书籍列表。

总结

通过以上步骤,我们从零开始构建了一个简单的在线图书管理系统。虽然这个系统功能较为基础,但它为你理解Java Web开发的流程提供了良好的基础。你可以在此基础上继续扩展,如添加用户管理、书籍搜索、书籍分类等功能,以提升系统的完整性和实用性。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部