9.9 KiB
9.9 KiB
资产管理系统 — 项目文件目录结构
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层捕获展示