# navi-java **Repository Path**: dspos/navi-java ## Basic Information - **Project Name**: navi-java - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-20 - **Last Updated**: 2026-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ZTS Navi 基于 Java 21 + Spring Boot + Vue 3 + Electron 的数据库客户端,支持 MySQL 和 GaussDB。 ## 技术栈 ### 后端 - Java 21 - Spring Boot 3.5 - MySQL Connector/J 5.1.38 - GaussDB JDBC 驱动 - HikariCP 连接池 - Lombok & MapStruct - Apache POI (Excel 导入导出) - 支持 GraalVM Native Image 构建 ### 前端 - Vue 3.4 + TypeScript - Element Plus 2.6 - Monaco Editor (SQL 编辑器) - Pinia 状态管理 - sql-formatter (SQL 格式化) ### 桌面 - Electron 28 - electron-builder ## 项目结构 ``` navi-java/ ├── ztzq-navi-backend/ # Java 后端 │ ├── src/main/java/com/ztzq/ │ │ ├── controller/ # REST API 控制器 │ │ │ ├── ConnectionController.java │ │ │ ├── DatabaseController.java │ │ │ ├── QueryController.java │ │ │ ├── DataController.java │ │ │ ├── DdlController.java │ │ │ ├── ImportExportController.java │ │ │ └── TableDesignerController.java │ │ ├── service/ # 业务逻辑 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── config/ # 配置类 │ │ └── util/ # 工具类 │ ├── build.sh # Linux/macOS 构建脚本 │ ├── run.bat # Windows 运行脚本 │ └── pom.xml │ ├── ztzq-navi-frontend/ # Vue 3 + Electron 前端 │ ├── electron/ # Electron 主进程 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── components/ # Vue 组件 │ │ ├── stores/ # Pinia 状态 │ │ ├── views/ # 页面 │ │ └── router/ # 路由配置 │ └── package.json │ └── README.md ``` ## 快速开始 ### 环境要求 - JDK 21+ - Node.js 18+ - Maven 3.8+ ### 启动后端 ```bash cd ztzq-navi-backend mvn clean package -DskipTests java -jar target/zts-navi-backend.jar ``` 后端服务运行在 http://localhost:18080 ### 启动前端 ```bash cd ztzq-navi-frontend npm install npm run dev ``` 前端开发服务器运行在 http://localhost:5173 ### 启动 Electron 应用 ```bash cd ztzq-navi-frontend npm run electron:dev ``` ## API 接口 ### 连接管理 `/api/connections` | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/connections | 获取连接列表 | | GET | /api/connections/{id} | 获取单个连接 | | POST | /api/connections | 创建连接 | | PUT | /api/connections/{id} | 更新连接 | | DELETE | /api/connections/{id} | 删除连接 | | POST | /api/connections/test | 测试连接 | | POST | /api/connections/{id}/connect | 建立连接 | | POST | /api/connections/{id}/disconnect | 断开连接 | ### 数据库操作 `/api/databases` | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/databases/{connectionId} | 获取数据库列表 | | GET | /api/databases/{connectionId}/{database}/tables | 获取表列表 | | GET | /api/databases/{connectionId}/{database}/tables/{tableName} | 获取表结构 | ### SQL 查询 `/api/query` | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/query/execute | 执行 SQL | | POST | /api/query/cancel/{queryId} | 取消查询 | | POST | /api/query/format | 格式化 SQL | ### 数据操作 `/api/data` | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/data/query | 查询表数据 | | PUT | /api/data/update | 更新数据 | | POST | /api/data/insert | 插入数据 | | DELETE | /api/data/delete | 删除数据 | ### DDL 操作 `/api/ddl` | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/ddl/{connectionId}/databases | 创建数据库 | | DELETE | /api/ddl/{connectionId}/databases/{databaseName} | 删除数据库 | | PUT | /api/ddl/{connectionId}/databases/{oldName}/rename | 重命名数据库 | | DELETE | /api/ddl/{connectionId}/databases/{database}/tables/{tableName} | 删除表 | | PUT | /api/ddl/{connectionId}/databases/{database}/tables/{oldTableName}/rename | 重命名表 | | POST | /api/ddl/{connectionId}/databases/{database}/tables/{tableName}/truncate | 清空表 | | DELETE | /api/ddl/{connectionId}/databases/{database}/views/{viewName} | 删除视图 | | GET | /api/ddl/{connectionId}/databases/{database}/tables/{tableName}/foreign-keys | 获取外键 | | GET | /api/ddl/{connectionId}/databases/{database}/tables/{tableName}/triggers | 获取触发器 | | DELETE | /api/ddl/{connectionId}/databases/{database}/triggers/{triggerName} | 删除触发器 | ### 导入导出 `/api/io` | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/io/export/query | 导出查询结果 | | POST | /api/io/export/table | 导出表数据 | | GET | /api/io/export/table/sql | 导出表结构 SQL | | POST | /api/io/export/tables/sql | 导出多表结构 SQL | | POST | /api/io/import/preview | 预览导入文件 | | POST | /api/io/import/table | 导入数据到表 | | POST | /api/io/import/sql | 执行 SQL 文件 | | GET | /api/io/template | 下载导入模板 | ### 表设计器 `/api/designer` | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/designer/{connectionId}/databases/{database}/tables | 创建表 | | PUT | /api/designer/{connectionId}/databases/{database}/tables/{tableName} | 修改表结构 | | GET | /api/designer/{connectionId}/databases/{database}/tables/{tableName}/edit | 获取表结构(编辑用) | | POST | /api/designer/{connectionId}/databases/{database}/tables/preview | 预览创建表 SQL | | PUT | /api/designer/{connectionId}/databases/{database}/tables/{tableName}/preview | 预览修改表 SQL | ## 构建发布 ### 构建后端 JAR ```bash cd ztzq-navi-backend mvn clean package -DskipTests ``` ### 构建 GraalVM Native Image ```bash cd ztzq-navi-backend mvn clean package -DskipTests -Pnative ``` ### 构建 Electron 应用 ```bash cd ztzq-navi-frontend npm run electron:build ``` ## 功能特性 - [x] MySQL/GaussDB 连接管理 - [x] 数据库/表结构浏览 - [x] SQL 编辑器 (Monaco Editor) - [x] SQL 格式化 - [x] 表数据查看/编辑 - [x] 可视化表设计器 - [x] 数据导入 (CSV/Excel/SQL) - [x] 数据导出 (CSV/Excel/SQL) - [x] DDL 操作 (创建/删除/重命名) - [x] 触发器管理 - [x] 暗色主题 ## License Apache-2.0