11.5
项目计划管理系统设计方案
一、系统架构设计
采用 MVC 架构 设计,具体技术栈:
前端:HTML+CSS+JavaScript+JSP(统一风格:蓝色主调 + 卡片式布局)
后端:Java Servlet(处理请求)+ JavaBean(封装数据与数据库操作)
数据库:MySQL 8.0(存储项目信息)
服务器:Tomcat 9.0
二、数据库设计
-
数据库名称: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 可空(审核意见)
三、核心功能实现 -
主页面(index.jsp)
功能:展示 4 个子菜单(项目立项、修改项目、删除项目、审核项目),通过超链接跳转。
设计:统一导航栏 + 侧边菜单,确保页面风格一致。 -
项目立项(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倒序)。 -
修改项目(editProject.jsp + EditProjectServlet)
流程:
输入project_id,查询数据库判断audit_status:
若已审核(audit_status=1):提示 “已审核,不允许修改”
若未审核(audit_status=0):显示项目信息(project_id/name/location不可编辑,其余可修改)
提交修改后,通过UPDATE语句更新数据库。 -
删除项目(deleteProject.jsp + DeleteProjectServlet)
流程:
输入project_id,查询并显示项目信息
点击 “删除” 按钮:
已审核:弹窗提示 “项目已审核,不能删除”
未审核:弹窗确认 “是否删除”,确认后执行DELETE语句删除数据 -
项目审核(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语句(见第二步)
该方案满足所有需求,包括数据验证、页面交互、数据库操作及部署要求,各功能模块逻辑清晰,代码可维护性高。

浙公网安备 33010602011771号