Add AI SQL generation and update project docs

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-10 14:17:22 +08:00
parent c07f843587
commit 1fde63c752
16 changed files with 982 additions and 90 deletions
+58 -30
View File
@@ -11,10 +11,11 @@ HyperSql 是一个面向学生和 SQLite 初学者的轻量级数据库图形化
3. 数据库表结构和表数据需要以更直观的方式展示。
4. 大表或较多查询结果需要分页显示,避免界面卡顿和阅读困难。
5. 创建数据库、创建表、删除表等常见操作需要简洁清晰的图形界面。
6. 删除数据库文件、删除表删除数据行等危险操作需要确认流程,降低误操作风险。
6. 删除数据库文件、删除表删除数据行、恢复数据库等危险操作需要确认流程,降低误操作风险。
7. 表结构修改需要尊重 SQLite 原生能力,只提供安全可控的结构编辑入口。
8. 用户希望通过 AI 根据当前数据库结构和自然语言需求辅助生成 SQL,但生成结果不应自动执行。
当前版本已经完成了数据库文件管理、表/视图浏览、表结构查看、表数据分页查看、SQL 执行、SQL 结果分页、创建表、删除表、数据行编辑SQLite 支持范围内的表结构编辑等核心功能。数据库备份恢复和 AI 辅助 SQL 生成作为后续扩展功能继续开发
当前版本已经完成了数据库文件管理、表/视图浏览、表结构查看、表数据分页查看、SQL 执行、SQL 结果分页、创建表、删除表、数据行编辑SQLite 支持范围内的表结构编辑数据库备份恢复和 AI 辅助 SQL 生成等核心与扩展功能
## 2. 用户需求分析
@@ -39,7 +40,11 @@ HyperSql 是一个面向学生和 SQLite 初学者的轻量级数据库图形化
9. 用户通过图形界面新增、修改或删除表中的数据行。
10. 用户在 SQLite 支持范围内重命名表、新增字段或重命名字段。
11. 用户刷新表列表,并希望保持当前选中的表不变。
12. 后续版本中,用户可以备份恢复数据库,或使用 AI 辅助生成 SQL
12. 用户将当前数据库备份为另一个文件
13. 用户从备份文件恢复当前数据库,并在恢复前得到确认提示。
14. 用户在 UI 中配置 AI Provider、API Key、Base URL 和模型。
15. 用户输入自然语言需求,由 AI 根据当前数据库结构生成 SQL。
16. 用户检查 AI 生成的 SQL,然后手动点击执行。
## 3. 功能性需求
@@ -56,8 +61,9 @@ HyperSql 的功能性需求主要包括以下模块:
| 表结构安全编辑 | 支持重命名表、新增字段、重命名字段 | 已实现 |
| 状态与错误提示 | 显示连接状态、执行结果和错误信息 | 已实现 |
| 数据编辑 | 支持新增、修改、删除表数据行,并支持可识别单表 SQL 结果编辑 | 已实现 |
| 备份与恢复 | 支持数据库文件备份和从备份文件恢复 | 实现 |
| AI SQL 生成 | 根据表结构和用户自然语言需求生成 SQL | 实现 |
| 备份与恢复 | 支持数据库文件备份和从备份文件恢复 | 实现 |
| AI SQL 生成 | 根据表结构和用户自然语言需求生成 SQL,支持 OpenAI 兼容接口和 Anthropic Claude | 实现 |
| UI 优化 | 整理菜单、工具栏和侧边栏操作入口,降低界面拥挤程度 | 已实现 |
## 4. 核心功能需求说明
@@ -160,36 +166,53 @@ HyperSql 的功能性需求主要包括以下模块:
### 5.2 数据库备份与恢复
- 系统后续应支持将当前数据库复制为备份文件。
- 系统后续应支持用户选择备份文件进行恢复。
- 系统应支持将当前数据库复制为备份文件。
- 系统应支持用户选择备份文件进行恢复。
- 系统应在恢复前提示用户确认,避免覆盖当前数据库。
- 系统应避免将当前数据库文件本身作为备份目标或恢复来源。
- 系统应在恢复前关闭当前数据库连接,恢复后重新打开数据库并刷新界面。
- 系统应显示备份或恢复的执行结果。
当前实现状态:实现。
当前实现状态:实现。
### 5.3 AI 辅助 SQL 生成
- 系统后续应读取当前数据库的表结构信息。
- 系统后续应根据表结构自动生成 AI 提示词。
- 系统应读取当前数据库的表结构和视图结构信息。
- 系统应根据表结构自动生成 AI 提示词。
- 用户可以输入自然语言需求。
- 系统支持 OpenAI 兼容接口和 Anthropic Claude。
- 用户应能在 UI 中设置 Provider、API Key、Base URL、模型和超时时间。
- API Key 只应保存在本次运行内存中,不应写入本地配置文件。
- 系统调用 AI API 生成 SQL 语句。
- 用户可以检查并确认生成的 SQL 后再执行。
- AI 生成的 SQL 不应直接自动执行,应由用户确认后手动执行。
- 系统不应向 AI 发送表数据,只发送数据库结构和用户需求。
- 若 AI 调用失败,系统应显示错误提示。
- AI 生成 SQL 不应直接自动执行,应由用户确认后执行
- 生成 SQL 包含可能修改数据或结构的关键词,系统应提示用户谨慎检查
当前实现状态:实现。
当前实现状态:实现。
### 5.4 界面整理优化
- 系统菜单应包含完整功能入口。
- 工具栏应保留高频操作,避免按钮过多导致界面拥挤。
- 表相关操作应放在侧边栏附近,方便用户针对当前表操作。
- 危险或低频操作应主要放在菜单中,减少误触。
当前实现状态:已实现。
## 6. 非功能性需求
| 需求类型 | 说明 | 当前体现 |
|---|---|---|
| 易用性 | 界面清晰,操作流程简单,适合初学者使用 | 已采用菜单、工具栏、表格、创建表对话框、数据行编辑按钮结构编辑按钮 |
| 可靠性 | 数据库连接、SQL 执行、数据编辑表操作失败时应有错误提示 | 已实现基础错误提示 |
| 安全性 | 删除数据库、删除表、删除数据行和结构变更等操作前应确认 | 已实现确认流程 |
| 易用性 | 界面清晰,操作流程简单,适合初学者使用 | 已采用菜单、工具栏、侧边栏、表格、创建表对话框、数据行编辑按钮结构编辑按钮和 AI 生成入口 |
| 可靠性 | 数据库连接、SQL 执行、数据编辑表操作、备份恢复和 AI 调用失败时应有错误提示 | 已实现基础错误提示 |
| 安全性 | 删除数据库、删除表、删除数据行、恢复数据库和结构变更等操作前应确认;AI 生成 SQL 不自动执行 | 已实现确认流程和 AI 生成后手动执行机制 |
| 性能 | 对常见小型 SQLite 数据库能够快速打开和查询 | 表数据采用数据库侧分页,降低大表加载压力 |
| 可维护性 | 采用模块化设计,便于后续扩展和维护 | 已划分数据库连接、元数据读取、SQL 执行、行数据服务、结构编辑服务、工具类和控制器 |
| 隐私性 | AI 功能不应发送表数据,API Key 不应持久化到本地文件 | AI 提示只包含表/视图结构和用户需求,API Key 仅保存在运行内存中 |
| 可维护性 | 采用模块化设计,便于后续扩展和维护 | 已划分数据库连接、元数据读取、SQL 执行、行数据服务、结构编辑服务、备份恢复逻辑、AI 客户端和工具类 |
| 兼容性 | 支持常见 SQLite 数据库文件,适配主流桌面系统 | 基于 JavaFX 和 SQLite JDBC,具备跨平台基础 |
| 可扩展性 | 后续可扩展备份恢复和 AI SQL 生成 | 已保留 SQL 执行、元数据读取、行数据服务和结构编辑服务基础能力 |
| 可扩展性 | 后续可扩展更多 AI Provider、SQL 历史记录和界面美化 | 已提供 AI Provider 适配层和独立 AI SQL 生成服务 |
## 7. 需求优先级
@@ -202,8 +225,9 @@ HyperSql 的功能性需求主要包括以下模块:
| 中 | 创建表、删除表、删除数据库文件 | 已实现 |
| 中 | 数据行新增、修改、删除 | 已实现 |
| 中 | SQLite 支持范围内的表结构编辑 | 已实现 |
| 中 | 数据库备份与恢复 | 实现 |
| 低 | AI 辅助 SQL 生成、SQL 历史记录、界面进一步美化 | 实现 |
| 中 | 数据库备份与恢复 | 实现 |
| 低 | AI 辅助 SQL 生成、界面进一步美化 | 实现 |
| 低 | SQL 历史记录、更多数据库类型支持 | 后续可扩展 |
### 优先级说明
@@ -213,23 +237,24 @@ HyperSql 的功能性需求主要包括以下模块:
2. **中优先级需求**
- 提升软件实用性和数据安全性。
- 当前已经完成创建表、删除表、删除数据库文件、数据行编辑表结构安全编辑,后续应继续完成备份恢复。
- 当前已经完成创建表、删除表、删除数据库文件、数据行编辑表结构安全编辑备份恢复。
3. **低优先级需求**
- 作为项目亮点和扩展功能。
- 可根据开发进度调整实现程度
- 当前已经完成 AI 辅助 SQL 生成和基础界面整理,后续可继续扩展 SQL 历史记录或更多界面美化
## 8. 当前版本限制
当前 HyperSql 仍存在以下限制:
1. 还没有实现数据库备份与恢复功能
2. 还没有实现 AI 辅助 SQL 生成功能
3. SQL 查询结果分页属于客户端分页,查询结果会先全部读取到内存中,不适合特别大的查询结果
4. SQL 结果编辑只支持可识别的单表查询,JOIN、聚合、表达式等复杂结果保持只读
5. 表结构编辑只支持 SQLite 原生安全支持的重命名表、新增字段和重命名字段,不支持需要重建表的复杂结构修改
6. 当前删除表功能只支持删除普通表,不支持删除视图
7. 当前主要面向 SQLite,不支持 MySQL、PostgreSQL 等远程数据库
1. SQL 查询结果分页属于客户端分页,查询结果会先全部读取到内存中,不适合特别大的查询结果
2. SQL 结果编辑只支持可识别的单表查询,JOIN、聚合、表达式等复杂结果保持只读
3. 表结构编辑只支持 SQLite 原生安全支持的重命名表、新增字段和重命名字段,不支持需要重建表的复杂结构修改
4. 当前删除表功能只支持删除普通表,不支持删除视图
5. 当前主要面向 SQLite,不支持 MySQL、PostgreSQL 等远程数据库
6. AI 生成 SQL 的质量取决于用户配置的模型和 API 服务,生成结果仍需要用户检查后再执行
7. API Key 只在本次运行中保存,关闭软件后需要重新输入
8. 当前未实现 SQL 历史记录功能。
## 9. 需求分析总结
@@ -246,6 +271,9 @@ HyperSql 的功能性需求主要包括以下模块:
7. 删除普通表。
8. 数据行新增、修改和删除。
9. SQLite 支持范围内的表结构安全编辑。
10. 状态提示、错误提示和危险操作确认
10. 数据库备份和从备份恢复
11. AI 辅助 SQL 生成。
12. 状态提示、错误提示和危险操作确认。
13. 菜单、工具栏和侧边栏入口整理。
后续开发应优先完成数据库备份恢复,使系统从“可浏览、可执行 SQL、可编辑数据、可管理表结构”进一步发展为“可完整管理 SQLite 数据库”的工具。在时间允许的情况下,再实现 AI 辅助 SQL 生成作为项目亮点。
当前 HyperSql 已经从“可浏览、可执行 SQL、可编辑数据、可管理表结构”进一步发展为“可完整管理 SQLite 数据库,并提供 AI 辅助 SQL 生成”的轻量级数据库管理工具。后续可以围绕测试、演示体验、SQL 历史记录和更细致的界面美化继续迭代。