SQL工坊:一个 Spring Boot 框架,把数据库操作从“写代码“变成“配配置“

一个框架同时搞定 JSON CRUD API、SQL 模板引擎、跨库联邦查询、低代码可视化、AI 工具接入——这不是 PPT,是已经发布到 Maven Central 的开源项目。


痛点:为什么我们需要一个新的数据库框架?

Spring Boot 生态里不缺数据库框架。MyBatis 够成熟,JPA 够标准,jOOQ 够灵活。但在实际的企业项目中,你可能经常会遇到这些场景:

  • 运营需要一个后台管理页面,但 CRUD 写起来太枯燥,低代码平台又不想引入整套体系
  • 报表系统要跨 MySQL 和 PostgreSQL 联合查询,结果只能在代码里分别查出来再拼
  • AI 要接数据库,但你不放心把数据库连接直接给 LLM,需要一个安全的中间层
  • 动态条件查询写得太多,每次都是 if/else 拼接 SQL,维护到怀疑人生

这些问题,每一个都不难解决,但每一个都够烦。SQL 工坊(SQL Forge) 就是为了解决这些"不难但烦"的问题而生的。


它是什么

SQL Forge 是一个 Spring Boot Starter 级别的数据库操作框架,已发布到 Maven Central(io.github.wb04307201,当前版本 1.6.1)。引入依赖即可使用,按需加载模块。

一句话概括:它把数据库操作抽象成了五层能力,每一层都能独立使用,组合起来又是一个完整的解决方案。

在这里插入图片描述
SQL 工坊项目架构图


五层能力,逐一拆解

第一层:JSON CRUD API——不写后端代码,直接操作数据库

引入 sql-forge-spring-boot-starter 后,框架会自动基于你的 DataSource 注册一个数据库执行器。然后你就可以直接通过 HTTP POST JSON 来执行增删改查:

POST /sql/forge/api/json/select/user
{
  "conditions": [{"field": "status", "operator": "eq", "value": "active"}],
  "orderBy": [{"field": "created_at", "direction": "desc"}],
  "page": 1,
  "size": 20
}

支持 selectselectPageinsertupdatedelete,支持条件组合、关联查询、分页、分组、去重。不需要写一行 Java 代码。

这对于快速搭建后台管理、给低代码平台提供数据源、或者做内部工具,极其方便。

第二层:SQL 模板引擎——动态 SQL 的正确打开方式

告别 MyBatis 的 XML 地狱。SQL Forge 的模板引擎使用 <if><foreach>#{var} 语法,支持动态条件拼接:

<select id="findUsers">
  SELECT * FROM user
  WHERE status = 'active'
  <if test="name != null">
    AND name LIKE CONCAT('%', #{name}, '%')
  </if>
  <if test="roleIds != null">
    AND role_id IN
    <foreach collection="roleIds" item="id" open="(" separator="," close=")">
      #{id}
    </foreach>
  </if>
</select>

模板通过 REST API 管理,支持版本控制,可以在 Web Console 里直接调试。

第三层:Entity 模块——编译期安全的 Lambda 链式操作

对于喜欢类型安全的开发者,Entity 模块提供了 Lambda 表达式驱动的链式 API:

entityService.select(User.class)
    .where(User::getStatus).eq("active")
    .and(User::getAge).gt(18)
    .orderBy(User::getCreatedAt).desc()
    .page(1, 20)
    .execute();

字段引用是编译期安全的——如果你重命名了 status 字段,IDE 会直接标红,不用等到运行时才发现问题。

第四层:Calcite 跨库联邦查询——一条 SQL 查多个数据库

这是 SQL Forge 最有差异化的能力。基于 Apache Calcite,你可以用一条 SQL 同时查询 MySQL、PostgreSQL 等不同数据库中的数据:

-- 一条 SQL 跨 MySQL 和 PostgreSQL 联合查询
SELECT a.order_id, b.customer_name, c.product_name
FROM mysql_db.orders a
JOIN pg_db.customers b ON a.customer_id = b.id
JOIN mysql_db.products c ON a.product_id = c.id

不需要 ETL,不需要数据同步,配置好数据源后直接查。对于需要做数据聚合报表、跨系统数据对账的场景,这个能力极其有价值。

第五层:MCP Server——让 AI 安全地操作数据库

这是 SQL Forge 最前沿的能力。sql-forge-mcp 模块提供了一个基于 stdio 传输的 MCP(Model Context Protocol)服务器,让 Claude Desktop、Cursor、Windsurf 等 AI 工具可以通过标准协议安全地操作数据库。

AI 不直接拿数据库连接,而是通过 MCP 工具调用 SQL Forge 的 JSON CRUD API 和 SQL 模板。你控制 AI 能做什么、不能做什么。

运行方式也很简单,通过 jbang 启动,无需本地安装:

jbang io.github.wb04307201:sql-forge-mcp:1.6.1

Web Console:开箱即用的可视化管理

引入 sql-forge-web-spring-boot-starter 后,你会得到一个完整的 Web 管理控制台,访问 /sql/forge/web 即可:

在这里插入图片描述
Web 控制台主界面

控制台包含:

  • 数据库元数据浏览——表结构、字段、索引一目了然
  • SQL 调试器——直接写 SQL 执行,实时看结果
  • JSON API 调试器——在线构造 JSON 请求,测试 CRUD
  • SQL 模板管理——在线编辑、调试、发布模板
  • Amis 低代码模板管理——可视化配置页面,直接渲染

在这里插入图片描述
Amis 低代码模板渲染效果

底层用的是百度开源的 Amis 框架,SQL Forge 在上面封装了一层模板管理能力,让你可以通过 API 动态管理页面配置。


技术选型

技术版本用途
JDK17+最低要求
Spring Boot3.5.x基础框架
Apache Calcite1.41.0跨库联邦查询
MVEL22.5.2表达式引擎
JSqlParser5.3SQL 解析
Amis低代码前端框架

项目已发布到 Maven Central,包含四个 Starter:

  • sql-forge-spring-boot-starter——核心能力
  • sql-forge-calcite-spring-boot-starter——跨库联邦查询
  • sql-forge-web-spring-boot-starter——Web Console + Amis
  • sql-forge-mcp——MCP Server

它和其他项目的关系

SQL Forge 不是一个孤立的项目。它可以作为 AI 原生企业解决方案的数据层基座

    灵梭(Loom Agent)  ←—— MCP 协议 ——→  SQL 工坊(SQL Forge)
    AI 编排 + 聊天 UI                       数据操作 + MCP Server
    RAG + Skill                            CRUD + Calcite + Amis
                    \                      /
                     \                    /
                    JavaBrain(组合示例)
  • 灵梭(Spring AI Loom Agent) 是 AI 编排层,负责聊天、RAG、MCP 工具调用。它通过 MCP 协议调用 SQL Forge 的能力,让 AI 可以安全地操作数据库。
  • JavaBrain 是这两个项目的组合示例,展示了灵梭 + SQL Forge 如何协同工作,实现自然语言数据分析、智能低代码页面生成等企业级能力。

两个项目各自独立发布、独立使用,组合在一起就是完整的企业 AI 基础设施。


适合谁用

场景怎么用
快速搭建后台管理JSON CRUD API + Amis 低代码,半天搞定
动态报表查询SQL 模板引擎 + 条件组合
跨系统数据聚合Calcite 联邦查询,一条 SQL 搞定
AI 接入数据库MCP Server,安全可控
内部工具开发JSON API + Web Console 调试

写在最后

SQL Forge 不是一个"颠覆性"的框架,它解决的都是实实在在的痛点。没有花哨的概念,只有好用的工具。

项目地址:

Maven Central 坐标:

<dependency>
    <groupId>io.github.wb04307201</groupId>
    <artifactId>sql-forge-spring-boot-starter</artifactId>
    <version>1.6.1</version>
</dependency>

如果你正在做 Spring Boot 项目,尤其是需要频繁和数据库打交道、需要给 AI 接入数据能力的场景,值得一试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值