149 lines
9.9 KiB
Markdown
149 lines
9.9 KiB
Markdown
# 资产管理系统 — 项目文件目录结构
|
||
|
||
```
|
||
assetmanager/
|
||
│
|
||
├── pom.xml # Maven项目配置文件,管理依赖(mysql-connector、jfreechart等)
|
||
│
|
||
├── docs/ # 项目文档目录
|
||
│ ├── architecture-design.md # 软件架构设计文档
|
||
│ ├── directory-structure.md # 本文件:目录结构说明
|
||
│ └── sql/ # SQL脚本目录
|
||
│ └── init.sql # 数据库初始化脚本(建库、建表、初始数据)
|
||
│
|
||
├── src/
|
||
│ ├── main/
|
||
│ │ ├── java/
|
||
│ │ │ └── com/
|
||
│ │ │ └── asset/
|
||
│ │ │ │
|
||
│ │ │ ├── App.java # 应用程序入口类,含main方法,启动登录界面
|
||
│ │ │ │
|
||
│ │ │ ├── entity/ # 实体层:与数据库表对应的JavaBean
|
||
│ │ │ │ ├── User.java # 用户实体,对应t_user表
|
||
│ │ │ │ ├── Asset.java # 资产实体,对应t_asset表
|
||
│ │ │ │ ├── Category.java # 分类实体,对应t_category表
|
||
│ │ │ │ ├── Borrow.java # 借用实体,对应t_borrow表
|
||
│ │ │ │ └── Disposal.java # 报废实体,对应t_disposal表
|
||
│ │ │ │
|
||
│ │ │ ├── dao/ # 数据访问层:直接操作数据库
|
||
│ │ │ │ ├── BaseDAO.java # DAO基类,封装通用CRUD操作(增删改查模板)
|
||
│ │ │ │ ├── UserDAO.java # 用户数据访问,登录验证、注册、查询
|
||
│ │ │ │ ├── AssetDAO.java # 资产数据访问,资产CRUD、多条件查询
|
||
│ │ │ │ ├── CategoryDAO.java # 分类数据访问,分类CRUD、引用检查
|
||
│ │ │ │ ├── BorrowDAO.java # 借用数据访问,借用CRUD、状态更新
|
||
│ │ │ │ └── DisposalDAO.java # 报废数据访问,报废CRUD、状态更新
|
||
│ │ │ │
|
||
│ │ │ ├── service/ # 业务逻辑层:封装业务规则与校验
|
||
│ │ │ │ ├── UserService.java # 用户业务逻辑,登录、注册、权限校验
|
||
│ │ │ │ ├── AssetService.java # 资产业务逻辑,资产CRUD、状态流转
|
||
│ │ │ │ ├── CategoryService.java # 分类业务逻辑,分类CRUD、删除引用检查
|
||
│ │ │ │ ├── BorrowService.java # 借用业务逻辑,借用/归还/审批流程
|
||
│ │ │ │ ├── DisposalService.java # 报废业务逻辑,报废申请/审批流程
|
||
│ │ │ │ └── StatService.java # 统计业务逻辑,各维度数据聚合查询
|
||
│ │ │ │
|
||
│ │ │ ├── util/ # 工具类目录
|
||
│ │ │ │ ├── DBUtil.java # 数据库工具类,连接获取/释放、资源关闭
|
||
│ │ │ │ ├── MD5Util.java # MD5加密工具,密码加密
|
||
│ │ │ │ ├── ValidatorUtil.java # 表单校验工具,通用校验方法集合
|
||
│ │ │ │ └── DateUtil.java # 日期工具类,日期格式转换
|
||
│ │ │ │
|
||
│ │ │ ├── exception/ # 自定义异常目录
|
||
│ │ │ │ ├── BusinessException.java # 业务异常,封装业务逻辑错误信息
|
||
│ │ │ │ └── DBException.java # 数据库异常,封装数据库操作错误信息
|
||
│ │ │ │
|
||
│ │ │ └── view/ # 表示层:Swing界面
|
||
│ │ │ ├── LoginFrame.java # 登录窗口,用户名/密码输入与验证
|
||
│ │ │ ├── RegisterDialog.java # 注册对话框,新用户注册表单
|
||
│ │ │ ├── MainFrame.java # 主窗口,菜单导航+功能面板容器
|
||
│ │ │ ├── panel/ # 功能面板目录
|
||
│ │ │ │ ├── AssetPanel.java # 资产管理面板,资产列表+增删改查操作
|
||
│ │ │ │ ├── CategoryPanel.java # 分类管理面板,分类列表+增删改操作
|
||
│ │ │ │ ├── BorrowPanel.java # 借用管理面板,借用申请/审批/归还
|
||
│ │ │ │ ├── DisposalPanel.java # 报废管理面板,报废申请/审批
|
||
│ │ │ │ ├── StatPanel.java # 统计面板,图表展示各类统计数据
|
||
│ │ │ │ └── UserPanel.java # 用户管理面板,用户列表+角色管理(管理员)
|
||
│ │ │ ├── dialog/ # 弹窗对话框目录
|
||
│ │ │ │ ├── AssetDialog.java # 资产新增/编辑对话框,含表单校验
|
||
│ │ │ │ ├── CategoryDialog.java # 分类新增/编辑对话框
|
||
│ │ │ │ ├── BorrowDialog.java # 借用申请对话框,选择资产+填写原因
|
||
│ │ │ │ ├── DisposalDialog.java # 报废申请对话框,选择资产+填写原因
|
||
│ │ │ │ ├── ApproveDialog.java # 审批对话框,同意/拒绝+备注
|
||
│ │ │ │ └── ChangePasswordDialog.java # 修改密码对话框
|
||
│ │ │ └── model/ # 表格数据模型目录
|
||
│ │ │ ├── AssetTableModel.java # 资产表格模型,JTable数据适配
|
||
│ │ │ ├── BorrowTableModel.java # 借用表格模型
|
||
│ │ │ ├── DisposalTableModel.java # 报废表格模型
|
||
│ │ │ └── UserTableModel.java # 用户表格模型
|
||
│ │ │
|
||
│ │ └── resources/
|
||
│ │ ├── db.properties # 数据库连接配置(URL/用户名/密码)
|
||
│ │ └── log.properties # 日志配置文件
|
||
│ │
|
||
│ └── test/
|
||
│ └── java/
|
||
│ └── com/
|
||
│ └── asset/
|
||
│ ├── dao/ # DAO层单元测试
|
||
│ │ └── UserDAOTest.java
|
||
│ ├── service/ # Service层单元测试
|
||
│ │ └── UserServiceTest.java
|
||
│ └── util/ # 工具类单元测试
|
||
│ └── ValidatorUtilTest.java
|
||
│
|
||
└── lib/ # 第三方JAR包目录(Maven未管理时备用)
|
||
└── (mysql-connector-java-x.x.x.jar)
|
||
```
|
||
|
||
---
|
||
|
||
## 目录功能注释汇总
|
||
|
||
| 目录/文件 | 层次 | 职责说明 |
|
||
|-----------|------|---------|
|
||
| `pom.xml` | 构建 | Maven项目对象模型,声明依赖(mysql-connector、jfreechart)、编译配置 |
|
||
| `docs/` | 文档 | 存放项目文档,含架构设计、目录说明、SQL脚本 |
|
||
| `docs/sql/init.sql` | 数据库 | MySQL初始化脚本,建库建表、外键约束、初始管理员数据 |
|
||
| `App.java` | 入口 | 程序main方法入口,初始化Look&Feel,启动LoginFrame |
|
||
| `entity/` | 实体层 | 与数据库表一一对应的JavaBean,含属性+getter/setter |
|
||
| `dao/` | 数据访问层 | 封装JDBC操作,BaseDAO提供通用CRUD模板,子类实现特定查询 |
|
||
| `dao/BaseDAO.java` | 数据访问层 | 通用CRUD模板方法,减少子类重复代码 |
|
||
| `service/` | 业务逻辑层 | 封装业务规则、数据校验、事务控制,调用DAO完成数据操作 |
|
||
| `util/` | 工具层 | 通用工具类,DBUtil管理连接、MD5Util加密、ValidatorUtil校验、DateUtil日期转换 |
|
||
| `exception/` | 异常层 | 自定义异常类,BusinessException处理业务错误,DBException处理数据库错误 |
|
||
| `view/` | 表示层 | Swing界面类,LoginFrame/MainFrame为顶层窗口 |
|
||
| `view/panel/` | 表示层 | 功能面板,嵌入MainFrame的内容区域,各模块独立面板 |
|
||
| `view/dialog/` | 表示层 | 弹窗对话框,用于新增/编辑/审批等操作,含表单校验逻辑 |
|
||
| `view/model/` | 表示层 | JTable表格模型,继承AbstractTableModel,适配数据到表格显示 |
|
||
| `resources/` | 配置 | 数据库连接配置、日志配置等properties文件 |
|
||
| `test/` | 测试 | 单元测试目录,结构镜像main/java |
|
||
|
||
---
|
||
|
||
## 分层调用关系
|
||
|
||
```
|
||
App.java (启动)
|
||
│
|
||
▼
|
||
view/ (LoginFrame → MainFrame → panel/dialog)
|
||
│ 用户操作触发事件
|
||
▼
|
||
service/ (业务校验 + 业务逻辑)
|
||
│ 调用DAO操作数据
|
||
▼
|
||
dao/ (JDBC → MySQL)
|
||
│ 获取连接
|
||
▼
|
||
util/DBUtil (连接管理)
|
||
│
|
||
▼
|
||
MySQL (asset_db)
|
||
```
|
||
|
||
**关键调用规则:**
|
||
- view → service → dao,**严禁跨层调用**(view不可直接调dao)
|
||
- entity被所有层共享,仅作为数据载体
|
||
- util被service/dao/view按需调用
|
||
- exception由service/dao抛出,view层捕获展示
|