基于 Java Swing 与 MySQL 的桌面端需求管理系统,支持 RBAC 权限控制、项目与需求全生命周期管理。
版本: v2.0.0
主入口: RequirementManagementSystem2
| 模块 | 说明 |
|---|---|
| 用户认证 | 登录、注册,启动时检测数据库连接状态 |
| 需求管理 | 需求的创建、编辑、查看、确认及状态流转 |
| 项目管理 | 项目信息维护与变更记录 |
| 用户管理 | 用户信息维护、角色分配 |
| 权限管理 (RBAC) | 基于角色的访问控制,支持模块级操作权限 |
| 数据范围 | 按角色限制数据可见范围(全部 / 部门 / 个人) |
| 角色约束 | 互斥角色、数量限制、时间约束等高级 RBAC 规则 |
| 角色继承 | 子角色继承父角色权限 |
| 系统管理 | 权限配置、系统设置、数据备份、审计日志 |
| 需求追溯 | 需求与设计、代码、测试用例等产物的关联追踪 |
| 变更记录 | 需求、用户、项目、系统等操作的变更审计 |
NEW → ANALYSIS → CONFIRMED → IN_DEV → DONE / CANCELLED
| 角色 | 典型权限 |
|---|---|
| 系统管理员 | 全部功能,含用户/项目/需求管理及系统配置 |
| 需求管理人员 | 需求管理相关操作 |
| 需求开发人员 | 以查看为主,权限由 RBAC 配置决定 |
- 语言: Java(JDK 8+)
- 界面: Java Swing
- 数据库: MySQL 8.x
- 驱动: MySQL Connector/J 9.4.0
- 构建方式: IntelliJ IDEA 原生 Java 模块(无 Maven / Gradle)
xuqiu0/
├── src/ # 源代码
│ ├── RequirementManagementSystem2.java # 主程序入口
│ ├── LoginGUI_Fixed.java # 登录界面
│ ├── RequirementManagementGUI.java # 主界面
│ ├── DatabaseConfig.java # 数据库连接配置
│ ├── RBACService.java # RBAC 权限服务
│ ├── *DAO.java # 数据访问层
│ ├── *.java # 实体与业务模型
│ └── test/SimpleTest.java # 数据库连接测试
├── lib/
│ └── mysql-connector-j-9.4.0.jar # MySQL JDBC 驱动
├── xuqiu0.iml # IntelliJ 模块配置
└── README.md
- JDK 8 或更高版本
- MySQL 8.x 服务已启动
- 已创建数据库
requirement_db,并完成表结构与初始数据导入 - IntelliJ IDEA(推荐)或其他支持 Java 的 IDE
本项目未包含 SQL 初始化脚本,请确保目标数据库
requirement_db中已存在所需表(如User、Role、Permission、Requirement、Project等)。
编辑 src/DatabaseConfig.java,修改连接信息:
private static final String URL = "jdbc:mysql://127.0.0.1:3306/requirement_db?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai";
private static final String USER = "root";
private static final String PASSWORD = "your_password";- 用 IDEA 打开项目根目录
- 确认
lib/mysql-connector-j-9.4.0.jar已添加为项目依赖(模块文件xuqiu0.iml中已配置) - 运行
RequirementManagementSystem2的main方法
调试模式启动(额外执行环境与数据库检查):
java RequirementManagementSystem2 debug在项目根目录执行:
# 编译
javac -encoding UTF-8 -cp "lib/mysql-connector-j-9.4.0.jar" -d out src/*.java src/test/*.java
# 运行
java -cp "out;lib/mysql-connector-j-9.4.0.jar" RequirementManagementSystem2Linux / macOS 下 classpath 分隔符使用
:而非;。
可单独运行连接测试:
java -cp "out;lib/mysql-connector-j-9.4.0.jar" test.SimpleTest程序启动后,控制台会打印可用测试账号:
| 角色 | 用户名 | 密码 |
|---|---|---|
| 管理员 | admin |
admin123 |
| 需求经理 | manager1 |
manager123 |
| 开发人员 | dev1 |
dev123 |
系统采用 RBAC(基于角色的访问控制) 架构:
User ── UserRole ── Role ── RolePermission ── Permission
│
├── RoleDataScope ── DataScope
├── RoleConstraint(互斥 / 数量 / 时间)
└── RoleInheritance(角色继承)
- 模块权限: 按
module_name+action控制操作(如REQUIREMENT.view、SYSTEM.manage_permissions) - 数据范围:
ALL(全部)>DEPARTMENT(部门)>SELF(个人),取用户最高范围 - 界面适配: 主界面根据当前用户权限动态显示/隐藏功能选项卡与按钮
| 文件 | 职责 |
|---|---|
RequirementManagementSystem2.java |
应用入口,初始化外观并启动登录界面 |
LoginGUI_Fixed.java |
登录、注册及数据库状态展示 |
RequirementManagementGUI.java |
主界面,集成各业务模块 |
RBACService.java |
权限校验、数据范围过滤、角色约束检查 |
RequirementDAO.java |
需求 CRUD 与查询 |
UserDAO.java |
用户管理与角色分配 |
ProjectDAO.java |
项目管理 |
RequirementService.java |
需求业务逻辑 |
Q: 启动时提示数据库连接失败?
- 确认 MySQL 服务已启动
- 确认数据库
requirement_db已创建 - 检查
DatabaseConfig.java中的 URL、用户名、密码是否正确 - 确认
lib/mysql-connector-j-9.4.0.jar在 classpath 中
Q: 登录后部分功能不可见?
- 这是 RBAC 的正常行为,功能可见性取决于当前用户角色及其权限配置
- 使用
admin账号可访问完整功能
Q: 界面中文显示异常?
- 编译时使用
-encoding UTF-8 - 确保系统已安装「微软雅黑」等中文字体
本项目为学习与课程实践用途,未指定开源许可证。如需二次分发,请先与项目维护者确认。