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

发布时间:2026/8/10 17:11:30
政务低代码平台实战(总纲)——从元数据引擎到可视化设计器的五个关键决策
政务低代码平台实战总纲——从元数据引擎到可视化设计器的五个关键决策文章目录政务低代码平台实战总纲——从元数据引擎到可视化设计器的五个关键决策本系列与框架系列的关系系列文目录第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/DELETEea02存FROM表ea03存列ea04存JOIN条件ea05存WHERE条件。commonSql类从元数据动态拼装SQLOracle和SQL Server自动方言切换90%的查询不用写一行SQL。适用场景不想手写SQL想用配置化管理所有数据访问的场景。第2篇政务表单动态建表——运行时DDL引擎前端拖完字段后端直接建核心看点业务人员在页面上拖字段、选类型、点保存后端DDL引擎自动建物理表、加主键约束、加注释、自动往ea01-ea05写元数据。建完表立即可查零配置上线。Oracle和SQL Server切换只改一行IoC配置。适用场景政务表单需要动态建表的场景建完表还要对接工作流和报表。第3篇CommonSQL——一个接口扛起所有CRUD核心看点前端传一个sqlId 参数后端CommonSQLcontrol拿到sqlId后从缓存读ea01-ea05元数据经commonSql拼装出完整SQLPreparedStatement参数绑定执行。查询、分页、导出、增删改一个Business搞定。适用场景前端只发sqlId JSON参数后端自动完成所有数据操作。第4篇可视化表单设计器——拖拽、合并拆分、代码生成核心看点基于Dojo的前端设计器支持表格创建/合并/拆分类似Word控件拖入单元格属性面板实时编辑自动生成查询/保存/增删改JS代码。政务审批表单格式复杂、布局不规则固定行列方案搞不定必须做自由布局。适用场景政务审批表单的可视化设计业务人员能拖出复杂的合并单元格表单。第5篇双输出模式——设计器存DB与导出JSP的完整链路核心看点设计器有两条出路——存到数据库t_form/t_field/t_el/t_elcol运行时动态还原渲染或导出成JSP文件写磁盘t_form记录文件路径type3运行时直接读文件。导出的JSP还能载回设计器继续编辑。适用场景开发阶段用DB动态渲染方便调试上线后导JSP求性能两种模式自由切换。五个决策的统一原则决策原则ea01-ea05元数据引擎把SQL从代码移到数据运行时DDL建完表即刻可用不留手工环节CommonSQL通用CRUD一个入口统一所有数据操作可视化设计器用业务人员能理解的方式描述表单DBJSP双输出开发阶段求灵活上线后求性能一句话用元数据描述一切变化的东西用设计器管理这些元数据。表单字段会变、SQL会变、布局会变——这些不应该硬编码在代码里。用关系表描述它们用设计器编辑它们运行时动态生成上线时可以选择导出静态文件。这个低代码平台没有拖拽生成Java代码没有DSL没有编译步骤——就是关系表 运行时拼装。简单粗暴但在政务场景里跑了十几年。低代码平台全景图┌─────────────────────────────────────────────────────────┐ │ 可视化设计器 │ │ formEdit.jsp拖拽/合并/拆分/属性/事件 │ │ ↓ 保存 ↓ 导出JSP │ │ ┌─────────┐ ┌──────────┐ │ │ │ t_form │ │ .jsp文件 │ │ │ │ t_field │ │ .js文件 │ │ │ │ t_el │ └─────┬────┘ │ │ │ t_elcol │ │ │ │ └────┬────┘ │ │ │ │ type1/2 │ type3 │ ├──────────────┼────────────────────┼─────────────────────┤ │ ↓ ↓ │ │ 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 #低代码 #元数据驱动 #表单设计器 #政务信息化 #自研框架