# DbTableCompare **Repository Path**: flydog888/db-table-compare ## Basic Information - **Project Name**: DbTableCompare - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-30 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数据库表比对平台 (Database Table Compare Platform) 一个用于 Oracle 和 GaussDB 数据库表比对的平台,支持大规模数据比对(最高1千万行)。 ## 功能特性 - **连接管理**: 支持多数据库连接配置,HikariCP连接池管理 - **驱动管理**: 预置驱动 + 自定义驱动上传,独立ClassLoader隔离加载 - **比对引擎**: - 元数据比对(结构、索引、约束) - 数据比对(流式批处理 + 并行处理) - 自动策略选择 - **实时进度**: WebSocket推送 + HTTP轮询 - **结果展示**: 分页查询、差异高亮、Excel/PDF导出 - **线程池管理**: 动态配置 + 实时监控 ## 技术栈 ### 后端 - Java 17 - Spring Boot 3.2 - Spring Data JPA - H2 Database (嵌入式) - HikariCP (连接池) - WebSocket (实时通信) - Apache POI (Excel导出) - AES加密 (密码保护) ### 前端 - Vue 3 - Element Plus - Pinia (状态管理) - Vue Router - Axios - Vite ## 项目结构 ``` db-table-compare/ ├── pom.xml # Maven配置 ├── src/main/ │ ├── java/com/dbcompare/ │ │ ├── DbCompareApplication.java │ │ ├── config/ # 配置类 (5) │ │ ├── controller/ # REST控制器 (5) │ │ ├── entity/ # JPA实体 (8) │ │ ├── repository/ # 数据访问 (8) │ │ ├── service/ # 业务逻辑 (12) │ │ ├── model/ # DTO模型 (12) │ │ ├── driver/ # 驱动管理 (7) │ │ ├── connection/ # 连接管理 (5) │ │ ├── engine/ # 比对引擎 (5) │ │ ├── progress/ # 进度跟踪 (2) │ │ ├── threadpool/ # 线程池 (2) │ │ └── result/ # 结果存储 (1) │ └── resources/ │ └── application.yml # Spring配置 ├── frontend/ # Vue 3前端 │ ├── package.json │ ├── vite.config.js │ ├── src/ │ │ ├── api/ # API模块 (5) │ │ ├── store/ # Pinia状态 (4) │ │ ├── router/ # 路由配置 │ │ ├── views/ # 页面组件 (6) │ │ └── styles/ # 全局样式 │ └── index.html ├── config/ │ ├── drivers-config.json # 预置驱动配置 │ └── threadpool-config.yaml # 线程池配置 ├── database/ │ └── db-compare-init.sql # H2初始化脚本 └── docs/ └── superpowers/plans/ # 实施计划 ``` ## API端点 ### 连接管理 `/api/connections` | 方法 | 端点 | 描述 | |------|------|------| | POST | `/` | 创建连接 | | GET | `/` | 获取所有连接 | | GET | `/type/{type}` | 按类型获取 | | PUT | `/{id}` | 更新连接 | | DELETE | `/{id}` | 删除连接 | | POST | `/{id}/test` | 测试连接 | ### 驱动管理 `/api/drivers` | 方法 | 端点 | 描述 | |------|------|------| | GET | `/builtin` | 预置驱动 | | GET | `/custom` | 自定义驱动 | | POST | `/upload` | 上传驱动 | | POST | `/upload/{id}/validate` | 验证驱动 | | POST | `/upload/{id}/save` | 保存驱动 | ### 比对任务 `/api/compare` | 方法 | 端点 | 描述 | |------|------|------| | POST | `/tasks` | 创建任务 | | GET | `/tasks` | 所有任务 | | POST | `/tasks/{id}/start` | 启动任务 | | POST | `/tasks/{id}/pause` | 暂停任务 | | POST | `/tasks/{id}/cancel` | 取消任务 | ### 结果查看 `/api/results` | 方法 | 端点 | 描述 | |------|------|------| | GET | `/structure/{taskId}` | 结构差异 | | GET | `/data/{taskId}` | 数据差异 | | GET | `/stats/{taskId}` | 统计信息 | | GET | `/export/{taskId}/excel` | 导出Excel | ### WebSocket `/ws` - 实时进度推送 - 任务状态更新 ## 性能目标 - **比对速度**: 10,000,000行 < 15分钟 - **内存占用**: < 100MB - **并发支持**: 8-16线程并行 ## 快速开始 ### 后端 ```bash cd db-table-compare mvn clean install mvn spring-boot:run ``` 访问 http://localhost:8080 ### 前端 ```bash cd frontend npm install npm run dev ``` 访问 http://localhost:3000 ## 配置说明 ### application.yml ```yaml spring: datasource: url: jdbc:h2:file:./data/db-compare driver-class-name: org.h2.Driver encryption: secret-key: YourSecretKey thread-pool: compare: core-size: 8 max-size: 16 ``` ## 开发进度 - [x] Phase 1: 后端基础架构 (完成) - [x] Phase 2: 驱动与连接管理 (完成) - [x] Phase 3: 比对引擎核心 (完成) - [x] Phase 4: Vue 3前端 (完成) - [ ] Phase 5: 集成测试 - [ ] Phase 6: Docker部署 ## 许可证 内部工具,仅供测试使用。