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

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

文章目录

非科班野生程序员,深耕政务信息化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 #低代码 #元数据驱动 #表单设计器 #政务信息化 #自研框架

相关推荐
只会cv的小前端2 天前
七巧低代码表单JS脚本教学
开发语言·javascript·低代码
IPHWT 零软网络3 天前
政务热线:如何打造 7x24 小时不打烊的智能总机?
大数据·人工智能·政务·智能路由·ivr语音导航
踩着两条虫3 天前
VTJ.PRO AI Agent 技术白皮书
前端·vue.js·低代码
雨辰AI3 天前
达梦 DM9 K8s 密评合规部署|等保三级 + 密评双标准安全加固(金融级实测通过)
安全·云原生·容器·金融·kubernetes·政务
只会cv的小前端4 天前
七巧低代码服务端脚本使用方法
android·低代码·rxjava
雨辰AI4 天前
人大金仓 K8s 密评合规加固|国密全链路加密 + 权限收敛容器化落地(三级密评直通版)
java·云原生·容器·kubernetes·政务
ZCBUS实时计算5 天前
政务海量分库分表汇聚实战:基于 3 节点 ZCBUS 集群完成医保 10TB 数据实时整合
大数据·数据库·数据仓库·sql·dba·etl·政务
iori97king5 天前
织信开发日志 03:表单引擎从 0 到 1 的设计过程
低代码
工业甲酰苯胺6 天前
数字化转型困在规划里?AI+低代码解锁业务落地新路径
大数据·数据库·人工智能·低代码