news 2026/8/10 17:11:26

政务低代码平台实战(总纲)——从元数据引擎到可视化设计器的五个关键决策

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
政务低代码平台实战(总纲)——从元数据引擎到可视化设计器的五个关键决策

政务低代码平台实战(总纲)——从元数据引擎到可视化设计器的五个关键决策

文章目录

  • 政务低代码平台实战(总纲)——从元数据引擎到可视化设计器的五个关键决策
    • 本系列与框架系列的关系
    • 系列文目录
      • 第1篇:5张表描述任意SQL——ea01-ea05元数据引擎设计
      • 第2篇:政务表单动态建表——运行时DDL引擎,前端拖完字段后端直接建
      • 第3篇:CommonSQL——一个接口扛起所有CRUD
      • 第4篇:可视化表单设计器——拖拽、合并拆分、代码生成
      • 第5篇:双输出模式——设计器存DB与导出JSP的完整链路
    • 五个决策的统一原则
    • 低代码平台全景图

非科班野生程序员,深耕政务信息化20年,这套自研低代码平台支撑过省级社保、跨省医保结算等核心民生系统。前面的系列文讲了框架层(IOC、AOP、路由、MyBatis),这篇开始拆解平台的上层建筑——低代码引擎。从元数据驱动SQL到可视化表单设计器,五个关键决策,全是政务场景踩坑后的实用解法。最后感谢豆包、智谱、OpenCode,决策是我做的,代码是我搓的,文字是他们总结的。


作者:许彰午(xuzhangwu)

前面的系列文讲了框架底座:自研IOC容器、注解路由、CGLIB代理AOP、MyBatis分页改造、MongoDB混合存储。这些是"怎么跑起来"的问题。

这个系列讲另一个问题:跑起来之后,业务人员能不能自己配表单、配查询、配报表,不找开发?

答案是能。但不是靠一个大而全的引擎,而是靠五个关键决策,串起一条从建表到设计器到运行的完整链路。


本系列与框架系列的关系

┌─────────────────────────────────────────────────────────┐ │ 框架系列(已完成,10篇) │ │ IOC容器 / 注解路由 / 统一入参 / AOP代理 / ASM参数名 │ │ ThreadLocal上下文 / MongoDB缓存 / MyBatis分页 │ │ Excel报表 / Activiti任意流转 │ ├─────────────────────────────────────────────────────────┤ │ 低代码平台系列(本系列,5篇) │ │ │ │ ① ea01-ea05元数据引擎 ← 本系列核心 │ │ ② 运行时DDL建表 │ │ ③ CommonSQL通用CRUD │ │ ④ 可视化表单设计器 │ │ ⑤ 存DB与导JSP双输出 │ ├─────────────────────────────────────────────────────────┤ │ 工作流系列(已完成) │ │ 万能表单引擎 / 流程任意流转 / 会签 / 相对部门 │ └─────────────────────────────────────────────────────────┘

框架系列解决"怎么跑",低代码系列解决"怎么配",工作流系列解决"怎么批"。


系列文目录

第1篇:5张表描述任意SQL——ea01-ea05元数据引擎设计

核心看点:用5张关系表描述一条完整的SQL语句——ea01存语句头(SELECT/INSERT/UPDATE/DELETE),ea02存FROM表,ea03存列,ea04存JOIN条件,ea05存WHERE条件。commonSql类从元数据动态拼装SQL,Oracle和SQL Server自动方言切换,90%的查询不用写一行SQL。

适用场景:不想手写SQL,想用配置化管理所有数据访问的场景。

第2篇:政务表单动态建表——运行时DDL引擎,前端拖完字段后端直接建

核心看点:业务人员在页面上拖字段、选类型、点保存,后端DDL引擎自动建物理表、加主键约束、加注释、自动往ea01-ea05写元数据。建完表立即可查,零配置上线。Oracle和SQL Server切换只改一行IoC配置。

适用场景:政务表单需要动态建表的场景,建完表还要对接工作流和报表。

第3篇:CommonSQL——一个接口扛起所有CRUD

核心看点:前端传一个sqlId+ 参数,后端CommonSQLcontrol拿到sqlId后从缓存读ea01-ea05元数据,经commonSql拼装出完整SQL,PreparedStatement参数绑定执行。查询、分页、导出、增删改,一个Business搞定。

适用场景:前端只发sqlId+ JSON参数,后端自动完成所有数据操作。

第4篇:可视化表单设计器——拖拽、合并拆分、代码生成

核心看点:基于Dojo的前端设计器,支持表格创建/合并/拆分(类似Word),控件拖入单元格,属性面板实时编辑,自动生成查询/保存/增删改JS代码。政务审批表单格式复杂、布局不规则,固定行列方案搞不定,必须做自由布局。

适用场景:政务审批表单的可视化设计,业务人员能拖出复杂的合并单元格表单。

第5篇:双输出模式——设计器存DB与导出JSP的完整链路

核心看点:设计器有两条出路——存到数据库(t_form/t_field/t_el/t_elcol),运行时动态还原渲染;或导出成JSP文件写磁盘,t_form记录文件路径(type=3),运行时直接读文件。导出的JSP还能载回设计器继续编辑。

适用场景:开发阶段用DB动态渲染方便调试,上线后导JSP求性能,两种模式自由切换。


五个决策的统一原则

决策原则
ea01-ea05元数据引擎把SQL从代码移到数据
运行时DDL建完表即刻可用,不留手工环节
CommonSQL通用CRUD一个入口统一所有数据操作
可视化设计器用业务人员能理解的方式描述表单
DB+JSP双输出开发阶段求灵活,上线后求性能

一句话:用元数据描述一切变化的东西,用设计器管理这些元数据。

表单字段会变、SQL会变、布局会变——这些不应该硬编码在代码里。用关系表描述它们,用设计器编辑它们,运行时动态生成,上线时可以选择导出静态文件。

这个低代码平台没有拖拽生成Java代码,没有DSL,没有编译步骤——就是关系表 + 运行时拼装。简单粗暴,但在政务场景里跑了十几年。


低代码平台全景图

┌─────────────────────────────────────────────────────────┐ │ 可视化设计器 │ │ formEdit.jsp(拖拽/合并/拆分/属性/事件) │ │ ↓ 保存 ↓ 导出JSP │ │ ┌─────────┐ ┌──────────┐ │ │ │ t_form │ │ .jsp文件 │ │ │ │ t_field │ │ .js文件 │ │ │ │ t_el │ └─────┬────┘ │ │ │ t_elcol │ │ │ │ └────┬────┘ │ │ │ │ type=1/2 │ type=3 │ ├──────────────┼────────────────────┼─────────────────────┤ │ ↓ ↓ │ │ onlyFrom.jsp 读JSP文件输出 │ │ 动态渲染HTML │ │ ↓ │ │ ┌──────────────────────────────┐ │ │ │ CommonSQLcontrol │ │ │ │ 前端传 sqlId + 参数 │ │ │ │ ↓ │ │ │ │ commonSql 拼 SQL │ │ │ │ ↓ │ │ │ │ ea01~ea05 元数据(缓存) │ │ │ │ ↓ │ │ │ │ PreparedStatement 执行 │ │ │ │ ↓ │ │ │ │ DataStore 返回前端 │ │ │ └──────────────────────────────┘ │ │ ↓ │ │ ┌──────────────────────────────┐ │ │ │ DDL引擎(建表时触发) │ │ │ │ DDLop → DDLinterface │ │ │ │ → DDL_oracle_impl │ │ │ │ → DDL_mssql_impl │ │ │ │ 建表 + 自动注册ea01~ea05 │ │ │ └──────────────────────────────┘ │ │ ↓ │ │ ┌──────────────────────────────┐ │ │ │ 数据库(Oracle / SQL Server)│ │ │ └──────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘

这个系列是我对自己低代码平台的架构复盘。如果你也在做低代码或者政务系统,欢迎评论区交流。


系列导航:

  • 下一篇:[第1篇:5张表描述任意SQL——ea01-ea05元数据引擎设计]
  • 框架系列:[Java Web自研框架18年架构决策复盘(系列文总纲)]
  • 工作流系列:[政务工作流实战(二)——BPMN画不出来的七个设计决策]

作者:许彰午| 非科班野生程序员,深耕政务信息化20年

标签:#Java #低代码 #元数据驱动 #表单设计器 #政务信息化 #自研框架

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/10 17:10:54

如何快速打造个性化智能家居界面:Home Assistant美化终极指南

如何快速打造个性化智能家居界面:Home Assistant美化终极指南 【免费下载链接】hass-config ✨ A different take on designing a Lovelace UI (Dashboard) 项目地址: https://gitcode.com/gh_mirrors/ha/hass-config 想象一下这样的场景:下班回家…

作者头像 李华
网站建设 2026/8/10 17:09:22

AI Agent 工作原理:从零入门,收藏这份小白程序员进阶指南

本文深入浅出地解析了AI Agent的核心概念,通过对比LLM的局限性,阐述了Agent如何整合LLM、工具和记忆实现思考与行动的统一。文章详细介绍了Agent的三大核心组成部分——大脑(LLM)、工具和记忆,并分析了不同类型的Agent…

作者头像 李华
网站建设 2026/8/10 17:07:21

小白程序员也能入局!AI大模型应用开发,月入60k新风口等你来探索

AI已深度融入日常生活,未来趋势不可逆转。前vivo产品经理宋紫薇跨界投身AI硬件创业,反映行业热度。AI大模型应用开发工程师成为高薪紧缺岗位,月薪可达60k。该岗位更看重实际应用能力,而非高深理论,适合各背景人士转行学…

作者头像 李华
网站建设 2026/8/10 17:07:19

5分钟终极教程:微信QQ防撤回神器使用完全指南

5分钟终极教程:微信QQ防撤回神器使用完全指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/GitHub…

作者头像 李华
网站建设 2026/8/10 17:05:20

3分钟快速解锁加密音乐:终极免费工具完整指南

3分钟快速解锁加密音乐:终极免费工具完整指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gitco…

作者头像 李华
网站建设 2026/8/10 17:05:04

OpenCensus-Java最佳实践:提升微服务可观测性的10个技巧

OpenCensus-Java最佳实践:提升微服务可观测性的10个技巧 【免费下载链接】opencensus-java A stats collection and distributed tracing framework 项目地址: https://gitcode.com/gh_mirrors/op/opencensus-java OpenCensus-Java是一个功能强大的统计收集和…

作者头像 李华