停车场管理系统java项目 jsp web

停车场管理系统java项目 jsp web项目

主要用于实现停车场相关信息管理,基本功能包括:系统信息管理模块、车位信息管理模块、IC卡信息管理模块、固定车主停车管理模块、临时车辆信息管理模块、系统功能操模块等。

本系统结构如下:

(1)系统信息管理模块:角色的增加、删除、修改和查询;用户的增加、删除、修改和查询。

(2)车位信息管理模块:车位信息的增加、删除、修改和查询。

(3)IC卡信息管理模块:IC卡信息的增加、删除、修改和查询。

(4)固定车主停车管理模块:对固定车主的停车信息进行增加、删除、修改和查询

(5)临时车辆信息管理模块:对临时车辆的停车信息进行增加、删除、修改、查询和打印

(6)系统功能操模块:退出登陆、修改密码。

在这里插入图片描述
在这里插入图片描述

基于 Java 和 JSP 的停车场管理系统的 Web 项目代码。该项目使用了 Servlet 和 JSP 技术,结合 MySQL 数据库实现一个简单的停车场管理系统。该系统支持车辆的进入、离开、查询停车记录以及计算停车费用等功能。


项目结构

ParkingManagementSystem/
├── src/                # Java 源代码目录
│   ├── com.example.controller/  # Servlet 控制器
│   ├── com.example.dao/         # 数据访问层
│   ├── com.example.model/       # 数据模型
│   └── com.example.util/        # 工具类(如数据库连接)
├── WebContent/         # Web 资源目录
│   ├── css/            # 样式文件
│   ├── js/             # JavaScript 文件
│   ├── images/         # 图片资源
│   ├── WEB-INF/        # 配置文件和受保护资源
│   │   ├── web.xml     # Web 应用配置文件
│   │   └── lib/        # 依赖库(如 JDBC 驱动)
│   ├── index.jsp       # 主页
│   ├── addVehicle.jsp  # 添加车辆页面
│   ├── exitVehicle.jsp # 车辆离开页面
│   └── viewRecords.jsp # 查看停车记录页面
└── build/              # 编译后的文件

数据库设计

在 MySQL 中创建一个名为 parking_management 的数据库,并运行以下 SQL 脚本:

CREATE DATABASE parking_management;

USE parking_management;

CREATE TABLE parking_records (
    id INT AUTO_INCREMENT PRIMARY KEY,
    vehicle_number VARCHAR(20) NOT NULL, -- 车牌号
    entry_time DATETIME NOT NULL,       -- 进入时间
    exit_time DATETIME DEFAULT NULL,    -- 离开时间
    parking_fee DECIMAL(10, 2) DEFAULT 0.00 -- 停车费用
);

代码实现

1. 数据库工具类 (com.example.util.DBUtil)
package com.example.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/parking_management?useSSL=false&serverTimezone=UTC";
    private static final String USER = "root"; // 修改为你的数据库用户名
    private static final String PASSWORD = "password"; // 修改为你的数据库密码

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }
}

2. 数据模型类 (com.example.model.ParkingRecord)
package com.example.model;

import java.sql.Timestamp;

public class ParkingRecord {
    private int id;
    private String vehicleNumber;
    private Timestamp entryTime;
    private Timestamp exitTime;
    private double parkingFee;

    // Getters and Setters
    public int getId() { return id; }
    public void setId(int id) { this.id = id; }

    public String getVehicleNumber() { return vehicleNumber; }
    public void setVehicleNumber(String vehicleNumber) { this.vehicleNumber = vehicleNumber; }

    public Timestamp getEntryTime() { return entryTime; }
    public void setEntryTime(Timestamp entryTime) { this.entryTime = entryTime; }

    public Timestamp getExitTime() { return exitTime; }
    public void setExitTime(Timestamp exitTime) { this.exitTime = exitTime; }

    public double getParkingFee() { return parkingFee; }
    public void setParkingFee(double parkingFee) { this.parkingFee = parkingFee; }
}

3. 数据访问层 (com.example.dao.ParkingDAO)
package com.example.dao;

import com.example.model.ParkingRecord;
import com.example.util.DBUtil;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class ParkingDAO {
    // 添加车辆记录
    public void addVehicle(ParkingRecord record) throws SQLException {
        String sql = "INSERT INTO parking_records (vehicle_number, entry_time) VALUES (?, ?)";
        try (Connection conn = DBUtil.getConnection();
             PreparedStatement stmt = conn.prepareStatement(sql)) {
            stmt.setString(1, record.getVehicleNumber());
            stmt.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
            stmt.executeUpdate();
        }
    }

    // 更新车辆离开时间和费用
    public void updateExitTimeAndFee(String vehicleNumber, double fee) throws SQLException {
        String sql = "UPDATE parking_records SET exit_time = ?, parking_fee = ? WHERE vehicle_number = ?";
        try (Connection conn = DBUtil.getConnection();
             PreparedStatement stmt = conn.prepareStatement(sql)) {
            stmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
            stmt.setDouble(2, fee);
            stmt.setString(3, vehicleNumber);
            stmt.executeUpdate();
        }
    }

    // 查询所有记录
    public List<ParkingRecord> getAllRecords() throws SQLException {
        List<ParkingRecord> records = new ArrayList<>();
        String sql = "SELECT * FROM parking_records";
        try (Connection conn = DBUtil.getConnection();
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(sql)) {
            while (rs.next()) {
                ParkingRecord record = new ParkingRecord();
                record.setId(rs.getInt("id"));
                record.setVehicleNumber(rs.getString("vehicle_number"));
                record.setEntryTime(rs.getTimestamp("entry_time"));
                record.setExitTime(rs.getTimestamp("exit_time"));
                record.setParkingFee(rs.getDouble("parking_fee"));
                records.add(record);
            }
        }
        return records;
    }
}

4. Servlet 控制器 (com.example.controller.ParkingController)
package com.example.controller;

import com.example.dao.ParkingDAO;
import com.example.model.ParkingRecord;

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 java.io.IOException;
import java.sql.SQLException;

@WebServlet("/parking")
public class ParkingController extends HttpServlet {
    private ParkingDAO parkingDAO = new ParkingDAO();

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String action = req.getParameter("action");

        if ("add".equals(action)) {
            String vehicleNumber = req.getParameter("vehicleNumber");
            ParkingRecord record = new ParkingRecord();
            record.setVehicleNumber(vehicleNumber);
            try {
                parkingDAO.addVehicle(record);
                resp.sendRedirect("index.jsp?msg=Vehicle added successfully!");
            } catch (SQLException e) {
                e.printStackTrace();
                resp.sendRedirect("index.jsp?msg=Error adding vehicle.");
            }
        }
    }
}

5. JSP 页面示例 (index.jsp)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Parking Management System</title>
</head>
<body>
<h1>Welcome to Parking Management System</h1>

<form action="parking?action=add" method="post">
    <label for="vehicleNumber">Vehicle Number:</label>
    <input type="text" id="vehicleNumber" name="vehicleNumber" required>
    <button type="submit">Add Vehicle</button>
</form>

<p style="color: green;"><%= request.getParameter("msg") != null ? request.getParameter("msg") : "" %></p>
</body>
</html>

功能说明

  1. 添加车辆:用户输入车牌号,点击按钮将车辆信息存入数据库。
  2. 查看记录:从数据库中读取所有停车记录并显示。
  3. 计算费用:根据停车时长计算费用(可扩展)。

注意事项

  1. 依赖库

    • 下载 MySQL JDBC 驱动(如 mysql-connector-java-8.x.x.jar),并放入 WEB-INF/lib 目录。
  2. 部署环境

    • 使用 Apache Tomcat 或其他支持 JSP 的服务器运行项目。
  3. 扩展功能

    • 增加用户登录模块。
    • 实现分页查询和报表导出功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值