
zhaoxingpeng/dbjavagenix
Database managementЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
面向 Java 后端开发的智能数据库代码生成工具:基于 MCP 解析 MySQL 等数据库结构与关系,生成 Entity、DAO、Service、Controller 等分层代码,并支持模板扩展、规范校验与依赖管理。
Обзор
把"用 LLM 看着数据库做反向工程"做成一件可重复、可审计的事。 Skills 定义"怎么做" · MCP 提供"能做什么" · MCP Apps 让结果"看得见"。 把数据库表反向生成成 Spring Boot 工程 (Entity/DAO/Service/Controller/DTO/Mapper) 不是新东西 —— EasyCode、MyBatis-Plus Generator、Renren-generator 都做了多年。 当前可连接、查询并读取元数据的数据库为 MySQL、PostgreSQL 和 SQLite。Oracle 与 SQL Server 的类型映射保留为后续扩展准备,但尚未实现运行时驱动和元数据契约,不能作为 当前可用数据库声明。 1. 加载 java-codegen-from-db Skill,按 5 阶段工作流推进 2. 调用 db_connect_test → db_table_describe → db_table_foreign_keys 收集 schema 3. 调用 db_render_er_diagram → 客户端渲染 Mermaid ER 图 4. 调用 ai_infer_business_names 推断 → sys_user_role 应是 UserRoleAssignment 5. 调用 ai_recommend_template 推荐 → 检测到 RBAC,推 MybatisPlus-Mixed 6. 用 codegen_build_context + 6 个 codegen_render_* 分层生成,每层返回 code-diff 7. 用户确认后写盘 8. 会话结束时调用 db_disconnect(connection_id) 释放连接 - Python ≥ 3.11 / mcp ≥ 1.6 / Spring Boot 3.5 + Java 21 模板 - 单元测试 620+,GitHub Actions 分层 CI(提交策略、三版本质量、格式、数据库集成、模板、Docker、打包安装) - 多阶段 Dockerfile (python:3.11-slim + 非 root 用户) - .claude/skills/java-codegen-from-db/SKILL.
README
Показан фрагмент оригинального README. Открыть оригинал.
DBJavaGenix
把"用 LLM 看着数据库做反向工程"做成一件可重复、可审计的事。 Skills 定义"怎么做" · MCP 提供"能做什么" · MCP Apps 让结果"看得见"。
graph LR
Client[Claude Desktop / Cursor / Cherry] -->|Skill 加载| Skills
Skills[".claude/skills/java-codegen-from-dbspringboot-migration"]
Skills -->|按需调用| MCP
subgraph MCP[MCP Server 34 工具]
direction TB
DB[db_* 连接 / 查询 / 描述]
Atom[codegen_build_contextcodegen_render_entity/dao/service/controller/dto/mapper]
Graph[schema_topo_orderschema_cluster_tablesschema_check_cycles]
AI[ai_infer_business_namesai_recommend_templateai_summarize_schema]
Vis[db_render_er_diagram]
Obs[server_metrics / server_healthai_metrics / search_tools]
end
MCP -->|返回 _meta| Apps[MCP Apps 渲染]
Apps -->|mermaid / dashboard / code-diff / tree| Client
MCP -->|读取| Data[MySQL / PostgreSQL / SQLite + Mustache templates]
它解决什么问题
把数据库表反向生成成 Spring Boot 工程 (Entity/DAO/Service/Controller/DTO/Mapper) 不是新东西 —— EasyCode、MyBatis-Plus Generator、Renren-generator 都做了多年。LLM 时代的区别在于:
| 维度 | 老工具 | DBJavaGenix v0.2 |
|---|---|---|
| 工作流谁定 | 用户在 IDE 点配置面板 | Skill 文件显式编排 (LLM 不会乱调) |
| 调用粒度 | 一个大按钮一步到位 | 7 个原子工具 (build_context + 6 个 render_*),LLM 可中途让用户改 context 重渲 |
| 启动开销 | (插件,常驻) | 默认 ~3300 tok / 渐进模式 ~985 tok (节省 70%) |
| 命名 | 表前缀机械映射 | 15 条规则 + Claude API,识别 RBAC/电商/CMS 模式 |
| 输出可视化 | IDE 内文本 | MCP Apps: Mermaid ER 图 / 依赖仪表盘 / code-diff / 包结构树 |
| 可观测性 | 无 | server_metrics + ai_metrics + server_health |
快速开始
Docker (推荐)
docker build -t dbjavagenix:latest .
在 claude_desktop_config.json 添加:
{
"mcpServers": {
"dbjavagenix": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "DBJAVAGENIX_PROGRESSIVE=1",
"-e", "ANTHROPIC_API_KEY",
"dbjavagenix:latest"]
}
}
}
本地 dev
git clone https://github.com/ZhaoXingPeng/DBJavaGenix.git
cd DBJavaGenix
uv venv && uv pip install -e ".[dev]"
PYTHONPATH=src python -m dbjavagenix.cli server
数据库支持范围
当前可连接、查询并读取元数据的数据库为 MySQL、PostgreSQL 和 SQLite。Oracle 与 SQL Server 的类型映射保留为后续扩展准备,但尚未实现运行时驱动和元数据契约,不能作为 当前可用数据库声明。
第一次使用
在 LLM 客户端里说 “从数据库 myapp 的 sys_user / sys_role / sys_user_role 三张表生成 Spring Boot 代码”,Claude 会:
- 加载
java-codegen-from-dbSkill,按 5 阶段工作流推进 - 调用
db_connect_test→db_table_describe→db_table_foreign_keys收集 schema - 调用
db_render_er_diagram→ 客户端渲染 Mermaid ER 图
Установка
docker run -i --rm -e DBJAVAGENIX_PROGRESSIVE=1 -e ANTHROPIC_API_KEY dbjavagenix:latestКонфигурация
{
"mcpServers": {
"dbjavagenix": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "DBJAVAGENIX_PROGRESSIVE=1",
"-e", "ANTHROPIC_API_KEY",
"dbjavagenix:latest"]
}
}
}