05-EA01到EA05五张元数据表

发布时间:2026/11/2 1:01:18

05-EA01到EA05五张元数据表 05-EA01到EA05五张表描述任意SQLbrowise 元数据引擎的地基是五张表——EA01存SQL定义、EA02存表、EA03存字段、EA05存条件。一条SQL的全部要素查什么、从哪查、怎么过滤拆开存在这五张表里运行时按 sqlId 组装。这篇逐字段拆解五张表的物理设计和元数据对象模型。文章目录05-EA01到EA05五张表描述任意SQL一、五张表的分工二、EA01SQL主定义三、EA02FROM表定义四、EA03SELECT字段定义五、EA05WHERE条件定义六、一张完整的元数据拼出什么SQL一、五张表的分工EA01SQL主定义 一条SQL一行 ├── EA02FROM表 一条SQL N个表 ├── EA03SELECT字段一条SQL N个字段 └── EA05WHERE条件 一条SQL N个条件 EA04在browise中保留编号但已并入EA05——wiserise时代EA04存表间关联browise简化对应源码位置browise-metadata/src/main/java/com/browise/ea/core/metadata/类大小对应表装载SQLEaSqlMeta.java-EA01SELECT * FROM EA01EaTableMeta.java-EA02SELECT * FROM EA02 WHERE EAE001?EaFieldMeta.java-EA03SELECT * FROM EA03 WHERE EAE001? ORDER BY ...EaConditionMeta.java-EA05SELECT * FROM EA05 WHERE EAE001?启动时MetadataLoader.loadAll()8.5KB把五张表全量装进EaMetadataCacheConcurrentHashMap按 sqlCode 索引。二、EA01SQL主定义EAE001SQL编号 主键如SYS_USER_sEAE002 名称 展示用标题 EAE003 主表 默认FROM的表 EAE004SQL模式0综合1查询2更新3删除4插入 EAE800 原始SQLrawSql模式时使用 EAE801 是否rawSql0/1EAE004 模式字段的六种值决定了这条元数据被哪个API执行值模式执行入口0综合executeUpdate按_t参数分发_t2更新/4新增/3删除1查询query / count2更新executeUpdate3删除executeUpdate4插入insert5存储过程预留rawSql 模式EAE8011是逃生舱口复杂统计SQL没法拆成字段/条件时整条SQL存 EAE800SqlBuilder 只做#{param}→?占位符替换和分页包装第11篇专述。EaSqlMeta.java 对应字段publicclassEaSqlMeta{privateStringsqlCode;// EAE001privateStringtitle;// EAE002privateStringmainTable;// EAE003privateStringsqlMode;// EAE004privateStringrawSql;// EAE800privatebooleanhasRawSql;// EAE801}三、EA02FROM表定义EAE001SQL编号 外键→EA01 EAE005 表名 如SYS_USEREAE006 表别名 如u一条SQL查多个表时EA02有多行。SqlBuilder拼FROM时多行 →FROM SYS_USER u, SYS_UNIT d WHERE ...隐式JOIN关联条件在EA05里拼单行 →FROM SYS_USER零行rawSql → 不走这条路EaTableMeta.java 就三个字段——最简单的一张元数据表。四、EA03SELECT字段定义这是五张表里字段最多的一张也是describe()的数据源EAE001SQL编号 EAE006 表别名 关联EA02——字段属于哪个表 EAE007 字段名 数据库列名如PSN_NAMEEAE008 字段别名 查询结果的列名如psnNameEAE009 数据类型1字符2日期3数字4日期时间 EAE997 码值 关联AA10字典类别如SEXEAE998 是否码值0/1EAE700 是否可见 列表是否显示 eae991 显示类型 前端控件映射 required/regexRule/maskRule/encrypted/masked...EAE009 数据类型不只是展示信息——它直接影响SqlBuilder拼列表达式的方式Oracle方言// SqlBuilder.appendColumns 的核心分支case2:// 日期exprto_char(alias.column,yyyymmdd);break;case4:// 日期时间exprto_char(alias.column,yyyy-mm-dd hh24:mi:ss);break;default:// 字符/数字直接拼expralias.column;同一份元数据MySQL方言走DATE_FORMAT()、达梦走自己的函数——类型元数据是方言分支的依据。eae991 显示类型 → 前端控件的映射在 EaEngine.mapDisplayType()privateStringmapDisplayType(Stringeae991){if(eae991null)returntext;switch(eae991){case2:returndate;case3:returnnumber;case4:returndatetime;default:returntext;}}describe() 把它连同 codeName/encrypted/masked/pattern 全部输出给前端——CommonQuery就是靠这份JSON自动渲染表单和列表的。五、EA05WHERE条件定义最复杂的一张——它同时描述查询参数和过滤条件EAE001SQL编号 EAE006 表别名 EAE007 列名 EAE012 运算符0102like0304050607...EAE013 条件类型1固定值0动态参数 EAE014 参数名/值 动态参数名(如psnName)固定字面值 EAE015 连接符AND/OREAE016 左括号0/1EAE017 右括号0/1条件类型 EAE013 是SqlBuilder条件拼接的总开关第08篇展开1固定值→ 拼SQL时始终生效如AND u.STATUS 1只查在职0动态参数→ 运行时看参数Map——null/空串/null跳过有值才拼AND u.PSN_NAME LIKE %||?||%括号字段支持条件分组EAE0161的条件前拼(EAE0171的条件后拼)——实现(A OR B) AND C这种嵌套逻辑。EaConditionMeta.java 的 getOperatorSymbol() 把 EAE012 翻译成SQL符号getJoinOperator() 返回 AND/OR。六、一张完整的元数据拼出什么SQL配置示例——“查询在职用户按姓名模糊、按机构筛选”EA01: EAE001SYS_USER_s, EAE003SYS_USER, EAE0041 EA02: EAE001SYS_USER_s, EAE005SYS_USER, EAE006u EA03: 三行 u.PSN_ID → psnId (类型3) u.PSN_NAME → psnName (类型1, 码值无) u.PSN_SEX → psnSex (类型1, 码值SEX) EA05: 三行 u.STATUS 1 固定值 u.PSN_NAME like ? 动态(psnName) u.UNIT_ID ? 动态(unitId)运行时eaEngine.query(SYS_USER_s, {psnName:张, minRow:1, maxRow:20})拼出SELECTu.PSN_ID,u.PSN_NAME,u.PSN_SEXFROMSYS_USER uWHERE11ANDu.STATUS1ANDu.PSN_NAMELIKE%||?||%-- 参数: 张ORDERBYu.PSN_ID-- 外层再包 ROWNUM 三层分页第10篇unitId 没传——那一行动态条件被跳过。这就是五张表描述任意SQL的完整闭环。✅ 亮点逐字段拆五张元数据表的物理设计用一条在职用户模糊查询的完整示例串起EA01→02→03→05的协作点出EAE013固定/动态是条件拼接总开关、EAE009类型是方言分支依据。适合设计元数据驱动引擎的参考。扩展方向第06篇拆EaEngine调度、第07-08篇拆SqlBuilder六法与条件拼接细节。
延伸阅读

更多相关文章

2026/10/26 20:25:37

向量数据库入门 2026:从咖啡到 RAG,十分钟跑通语义搜索实战

向量数据库的核心就三件事:把文本变成一串数字、把数字存起来、用数字快速找到相似内容。不需要先懂线性代数,也不用啃 HNSW 论文,用 Python 跑一个 ChromaDB 的 Demo,十分钟就能直观感受到语义搜索的效果。真正决定检索质量的不是…

2026/10/25 19:48:13

Atmosphere崩溃0x4A8怎么解决:RetroArch闪退的完整排障指南

Atmosphere崩溃0x4A8怎么解决:RetroArch闪退的完整排障指南 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere 在 Nintendo Switch…

2026/11/1 2:01:37

1.c++入门篇

1.c中的关键字asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcaseenummutablestaticunionwchar_tcatchexplicitnamespacestatic_castunsigneddefaultcharexportnewstructusingfriendclassext…

2026/11/1 2:01:37

《江灯合声》:有可行的分框版,也仍可以选择连续鸣谢

武汉江岸区栎坡合唱团在免费节目册《江灯合声》中,以表格集中鸣谢资助者。各家共同要求改为独立小框,团里仍想保留表格。现有全名与支持事项清楚可见,双方此前未承诺具体排版。我支持保留表格。补充的试排材料让选择更具体:分框能…

2026/11/1 2:01:37

关于“贾子猜想”的数学地位、结构特征与讨论边界

关于“贾子猜想”的数学地位、结构特征与讨论边界摘要 本文对“贾子猜想”进行基于公开表述与现有数学事实的分析。该猜想主张:当正整数 n3m>5(即 n6,9,12,15,…)时,方程x₁ⁿ x₂ⁿ ⋯ xₙⁿ yⁿ不存在正整数解。文章首先…

2026/11/1 2:01:37

启动报Port 8088 was already in use?先查是谁占的

启动报Port 8088 was already in use?先查是谁占的 项目启动报 Port 8088 was already in use,意思很直白:这个端口已经有人占了。 先说原理:端口是"门牌号",一间房只住一个进程 端口就是一台机器上的门牌号…

2026/11/1 2:01:37

担心文档上云?本地运行的办公AI才敢放心用

单位上周开了个会,主题是"AI 提效",散会时领导补了一句:涉及客户资料的文档,不许往云端传。这话一出,会议室里本来跃跃欲试的同事全蔫了——大家平时用的那些在线 AI,文档一上传就不知道存哪儿去…

2026/11/1 1:56:37

华为OD机试真题 新系统 2026-10-28 JavaGoC【社交网络消息转发】

目录 题目 思路 Code 题目 题目内容: 在一个社交网络中,有 N 个用户(编号 0 到 N−1);每个用户都有一个「转发名单」(整数),该数二进制格式中的第 i 位为 1 表示此用户会把消息转发给第 i 个用户。 给定一个整数数组 forwardLists 和一个整数 initialSenders,请…

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑