11.5

项目计划管理系统设计方案
一、系统架构设计
采用 MVC 架构 设计,具体技术栈:
前端:HTML+CSS+JavaScript+JSP(统一风格:蓝色主调 + 卡片式布局)
后端:Java Servlet(处理请求)+ JavaBean(封装数据与数据库操作)
数据库:MySQL 8.0(存储项目信息)
服务器:Tomcat 9.0
二、数据库设计

  1. 数据库名称:project_management2. 数据表:project(存储项目全量信息)
    字段名 类型 约束 / 说明
    project_id varchar(8) 主键(8 位数字,前 4 位为年月,后 4 位序号)
    project_name varchar(100) 非空(≤50 汉字)
    location varchar(200) 非空(格式:XX 省 XX 市 XX 区 XX)
    property varchar(20) 非空(道路 / 管廊 / 住宅 / 商业 / 公建 / 园林绿化 / 产业类)
    total_investment int 非空(总投资)
    current_investment int 非空(截至目前投资)
    annual_investment int 非空(2025 年度投资)
    content text 非空(≤500 汉字)
    start_time date 非空(开工时间)
    end_time date 非空(完工时间)
    report_date date 非空(上报日期)
    audit_status int 非空(0 = 未审核,1 = 已审核,默认 0)
    audit_opinion text 可空(审核意见)
    三、核心功能实现

  2. 主页面(index.jsp)
    功能:展示 4 个子菜单(项目立项、修改项目、删除项目、审核项目),通过超链接跳转。
    设计:统一导航栏 + 侧边菜单,确保页面风格一致。

  3. 项目立项(addProject.jsp + AddProjectServlet)
    页面设计:
    表单包含所有项目信息字段,其中:
    project_id:手动输入(需验证 8 位数字 + 格式)
    property:单选按钮组(道路 / 管廊等 7 个选项)
    日期字段:input type="date" 限制格式
    提交按钮:触发表单验证
    核心验证逻辑(JavaScript + Servlet):
    javascript
    运行
    // 前端验证示例(项目编号)
    function checkProjectId(id) {
    const reg = /^\d{8}$/; // 8位数字
    const yearMonth = id.substr(0,4); // 前4位
    return reg.test(id) && yearMonth >= "2410" && yearMonth <= "9912";
    }
    java
    运行
    // Servlet验证(项目位置格式)
    if (!location.matches("^.+省.+市.+区.+$")) {
    request.setAttribute("error", "上报数据有误");
    request.getRequestDispatcher("addProject.jsp").forward(request, response);
    return;
    }
    数据入库:通过 JavaBean(ProjectDao)执行INSERT语句,保存成功后跳转至审核页面,并将新数据置顶(查询时按report_date倒序)。

  4. 修改项目(editProject.jsp + EditProjectServlet)
    流程:
    输入project_id,查询数据库判断audit_status:
    若已审核(audit_status=1):提示 “已审核,不允许修改”
    若未审核(audit_status=0):显示项目信息(project_id/name/location不可编辑,其余可修改)
    提交修改后,通过UPDATE语句更新数据库。

  5. 删除项目(deleteProject.jsp + DeleteProjectServlet)
    流程:
    输入project_id,查询并显示项目信息
    点击 “删除” 按钮:
    已审核:弹窗提示 “项目已审核,不能删除”
    未审核:弹窗确认 “是否删除”,确认后执行DELETE语句删除数据

  6. 项目审核(auditProject.jsp + AuditProjectServlet)
    模糊查询:通过project_id和project_name双条件查询:
    sql
    SELECT * FROM project
    WHERE project_id LIKE CONCAT('%',?,'%')
    AND project_name LIKE CONCAT('%',?,'%')
    ORDER BY report_date DESC
    审核功能:
    每条项目后设 “审核” 按钮,点击弹出审核框
    单选 “同意”/“不同意”(不同意需填写意见)
    提交后更新audit_status=1和audit_opinion
    四、JavaBean 封装数据库连接(DBUtil.java)
    java
    运行
    public class DBUtil {
    private static final String URL = "jdbc:mysql://localhost:3306/project_management";
    private static final String USER = "root";
    private static final String PASSWORD = "123456";
    private static Connection conn = null;

    // 获取连接
    public static Connection getConnection() {
    try {
    Class.forName("com.mysql.cj.jdbc.Driver");
    conn = DriverManager.getConnection(URL, USER, PASSWORD);
    } catch (Exception e) {
    e.printStackTrace();
    }
    return conn;
    }

    // 关闭资源
    public static void close(Connection conn, PreparedStatement pstmt, ResultSet rs) {
    try {
    if (rs != null) rs.close();
    if (pstmt != null) pstmt.close();
    if (conn != null) conn.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }
    五、工程目录结构
    plaintext
    project-management/
    ├── src/
    │ ├── com/
    │ │ ├── bean/
    │ │ │ └── Project.java // 项目实体类(属性+getter/setter)
    │ │ ├── dao/
    │ │ │ └── ProjectDao.java // 数据库操作(增删改查)
    │ │ ├── servlet/
    │ │ │ ├── AddProjectServlet.java
    │ │ │ ├── EditProjectServlet.java
    │ │ │ ├── DeleteProjectServlet.java
    │ │ │ └── AuditProjectServlet.java
    │ │ └── util/
    │ │ └── DBUtil.java // 数据库连接工具类
    ├── WebContent/
    │ ├── index.jsp // 主页面(菜单)
    │ ├── addProject.jsp // 项目立项
    │ ├── editProject.jsp // 修改项目
    │ ├── deleteProject.jsp // 删除项目
    │ ├── auditProject.jsp // 项目审核
    │ ├── css/
    │ │ └── style.css // 统一样式
    │ └── js/
    │ └── validate.js // 前端验证脚本
    └── Web.xml // Servlet配置(映射URL与Servlet类)
    六、部署说明
    将项目打包为WAR文件,部署到 Tomcat 的webapps目录
    启动 Tomcat,访问http://localhost:8080/project-management
    数据库初始化:执行CREATE DATABASE和CREATE TABLE语句(见第二步)
    该方案满足所有需求,包括数据验证、页面交互、数据库操作及部署要求,各功能模块逻辑清晰,代码可维护性高。

posted @ 2025-11-09 22:07  muyuxiaxing  阅读(2)  评论(0)    收藏  举报