# sql-fast-ai **Repository Path**: aurora_4_0/sql-fast-ai ## Basic Information - **Project Name**: sql-fast-ai - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-02-12 - **Last Updated**: 2026-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SQL Father — 智能 SQL 生成与模拟数据平台 > 基于 Spring Boot + React 的全栈项目,集成大语言模型(LLM)实现 AI 驱动的数据库开发辅助工具。 ## 项目简介 SQL Father 是一个面向开发者和数据库管理员的智能化 SQL 工具平台。用户可以通过可视化表单或自然语言描述快速生成建表 SQL、模拟数据、代码模板,同时借助 AI 大模型实现 SQL 优化、解释、纠错、安全审计、图表可视化等高级功能。 本项目在原有 SQL 生成和模拟数据功能基础上,新增了完整的 **AI 智能工具箱**,涵盖 10+ 项 AI 驱动功能。 --- ## 技术栈 ### 后端 | 技术 | 版本 | 用途 | |------|------|------| | Spring Boot | 2.7.x | 基础框架 | | MyBatis Plus | 3.5.x | ORM 持久层 | | MySQL | 8.x | 数据存储 | | Spring AOP | - | 切面鉴权 | | OkHttp | 4.x | AI API 调用(SSE 流式) | | Gson | - | JSON 解析 | | Druid | 1.2.x | SQL 语法解析 | | datafaker | 1.6.x | 模拟数据生成 | | FreeMarker | - | 代码模板引擎 | | EasyExcel | - | Excel 导入导出 | | Knife4j | 3.0.x | 接口文档 | ### 前端 | 技术 | 版本 | 用途 | |------|------|------| | React | 18 | UI 框架 | | UmiJS | 4.x | 应用框架 | | Ant Design | 4.x | 组件库 | | Ant Design Pro Components | - | 高级组件 | | TypeScript | - | 类型安全 | | Monaco Editor | - | 代码编辑器 | | ReactMarkdown | - | Markdown 渲染 | | Mermaid.js | 10.x | 图表本地渲染(ER 图等) | --- ## 功能模块 ### 一、核心功能 — SQL 生成与模拟数据 | 功能 | 说明 | |------|------| | 可视化建表 | 通过表单配置表名、字段、类型、约束,一键生成 | | 快捷导入 | 支持智能导入、SQL 导入、JSON 导入、Excel 导入 | | SQL 生成 | 自动生成 CREATE TABLE、INSERT 语句 | | 模拟数据 | 支持固定值、随机值、正则、递增、词库等多种生成规则 | | 代码生成 | 自动生成 Java 实体类、Java 对象代码、TypeScript 类型定义 | | JSON 数据 | 模拟数据转 JSON 格式输出 | | 表文档 | 自动生成 Markdown 格式的表结构文档 | ### 二、AI 智能工具箱 所有 AI 功能均采用 **SSE(Server-Sent Events)流式响应**,实时输出结果。 | 功能 | 端点 | 说明 | |------|------|------| | AI 智能建表 | `/ai/generate/byAi` | 自然语言描述自动生成多表结构 | | SQL 优化 | `/ai/sql/optimize/stream` | 性能分析 + 索引建议 + 优化重写 | | SQL 解释 | `/ai/sql/explain/stream` | 逐步解析 SQL 执行逻辑 | | 自然语言转 SQL | `/ai/sql/nl2sql/stream` | NL → SQL 智能转换 | | 表结构评审 | `/ai/sql/review/stream` | 命名规范 / 字段设计 / 索引 / 范式分析 | | SQL 纠错 | `/ai/sql/debug/stream` | 语法错误 / 逻辑错误自动修复 | | SQL 方言转换 | `/ai/sql/dialect/stream` | MySQL ↔ PostgreSQL / Oracle / SQLite / SQL Server | | 安全审计 | `/ai/sql/security/stream` | 注入检测 / 权限 / 数据泄露风险 | | 索引推荐 | `/ai/sql/index/stream` | 基于查询模式的最优索引方案 | | 图表生成 | `/ai/diagram/generate/stream` | SQL → Mermaid ER 图 / 表结构图 / 数据流图 | | AI 多轮对话 | `/ai/chat/stream` | 数据库领域专家级多轮对话 | ### 三、Mermaid 图表可视化 - AI 根据建表 SQL 自动生成 Mermaid 语法的 ER 图、表结构图、数据流图、依赖关系图 - 前端使用 **Mermaid.js** 本地渲染,无需外部 CDN,秒级出图 - 支持下载 PNG / SVG、复制 Mermaid 代码、查看源码 - 从 AI 智能建表弹窗和生成结果页均可一键跳转图表生成 ### 四、共享服务 | 模块 | 说明 | |------|------| | 词库共享 | 创建/使用/继承词库,一键生成字典表 | | 表信息共享 | 共享表设计,一键导入 | | 字段信息共享 | 共享常用字段定义 | ### 五、管理后台 - 用户管理、词库管理、表信息管理、字段信息管理、举报管理 --- ## 项目结构 ``` sql-father-backend-public-master/ ├── src/main/java/com/yupi/sqlfather/ │ ├── controller/ # 控制器层 │ │ ├── AiController # AI 功能接口(12 个端点) │ │ ├── SqlController # SQL 生成接口 │ │ ├── UserController # 用户接口 │ │ ├── DictController # 词库接口 │ │ ├── TableInfoController # 表信息接口 │ │ ├── FieldInfoController # 字段信息接口 │ │ └── ReportController # 举报接口 │ ├── service/ # 服务层 │ │ └── AiService # AI 大模型服务(SSE 流式调用) │ ├── core/ # 核心引擎 │ │ ├── GeneratorFacade # 门面模式统一入口 │ │ ├── builder/ # 生成器(SQL/Java/JSON/Markdown/前端代码) │ │ │ └── sql/ # SQL 方言(策略模式+工厂模式+单例模式) │ │ ├── generator/ # 模拟数据生成器(工厂模式) │ │ ├── schema/ # Schema 构造器(Druid SQL 解析) │ │ └── model/ # 核心模型(枚举、VO) │ ├── model/ # 数据模型(DTO / Entity / VO) │ ├── config/ # 配置类(AI 配置、跨域、MyBatis 等) │ ├── aop/ # AOP 切面(鉴权、日志) │ └── common/ # 通用类(错误码、响应封装) ├── frontend/ # 前端工程 │ └── src/ │ ├── pages/ │ │ ├── index/ # 主页(可视化建表 + 生成结果) │ │ ├── ai/ # AI 智能工具箱页面(10 个 tab) │ │ └── admin/ # 管理后台 │ ├── components/ │ │ ├── AiInputModal/ # AI 智能建表弹窗 │ │ ├── GenerateResultCard/ # 生成结果卡片(含 AI 按钮) │ │ └── DrawioPreview/ # Mermaid 图表渲染组件 │ ├── services/ │ │ └── aiService.ts # AI 服务(SSE 流式请求封装) │ └── utils/ │ └── aiConfig.ts # AI 配置管理(localStorage) └── sql/ # 数据库建表脚本 ``` --- ## 快速启动 ### 环境要求 - JDK 1.8+ - MySQL 8.0+ - Node.js 16+ - Maven 3.6+ ### 后端启动 ```bash # 1. 执行建表脚本 mysql -u root -p < sql/create_table.sql # 2. 修改 src/main/resources/application.yml 中的数据库配置 # 3.(可选)配置 AI 服务 # ai.enabled=true, ai.api-key, ai.base-url, ai.model # 4. 启动 mvn spring-boot:run ``` ### 前端启动 ```bash cd frontend npm install npm run dev ``` ### AI 功能配置 AI 功能支持任何兼容 OpenAI API 格式的大模型服务: ```yaml # application.yml ai: enabled: true api-key: your-api-key base-url: https://api.openai.com/v1 model: gpt-3.5-turbo ``` 也可在前端 **AI 设置页面**(`/ai/settings`)动态配置,数据存储在浏览器 localStorage 中。 --- ## 核心设计 ### 整体架构 核心设计理念:**任意输入 → 统一 Schema → 任意输出** ``` ┌─────────────────────────────────────────────────────┐ │ 输入层 │ │ 可视化表单 │ SQL 导入 │ Excel 导入 │ AI 自然语言 │ └──────────────────────┬──────────────────────────────┘ ▼ ┌─────────────────┐ │ TableSchema │ ← 统一数据结构 │ (JSON 配置) │ └────────┬────────┘ ▼ ┌─────────────────────────────────────────────────────┐ │ 输出层 │ │ 建表SQL │ 插入SQL │ 模拟数据 │ Java代码 │ TS代码 │ │ JSON │ Markdown文档 │ Mermaid图表 │ └─────────────────────────────────────────────────────┘ ``` ### 设计模式 | 设计模式 | 应用位置 | 说明 | |----------|----------|------| | **门面模式** | `GeneratorFacade` | 统一 SQL/数据/代码生成入口 | | **工厂模式** | `DataGeneratorFactory` | 根据模拟类型创建对应生成器 | | **单例模式** | `SQLDialectFactory` | ConcurrentHashMap 缓存方言实例 | | **策略模式** | `SQLDialect` 接口 | 不同数据库方言的 SQL 构建策略 | | **模板方法** | FreeMarker 模板 | Java / TypeScript 代码生成 | | **建造者模式** | `TableSchemaBuilder` | 多种输入源统一构建 Schema | ### AI 流式调用架构 ``` 前端 (SSE EventSource) │ ▼ AiController (SseEmitter) │ ▼ AiService.callAiStream() │ ── 构建 System Prompt + User Prompt │ ── OkHttp 异步请求(stream=true) │ ── 逐行解析 SSE data: 字段 │ ── 提取 delta.content 增量文本 ▼ SseEmitter.send() → 前端实时渲染 ``` --- ## API 文档 启动后端后访问:`http://localhost:8102/api/doc.html`(Knife4j 接口文档) --- ## 许可证 本项目仅供学习交流使用。