尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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六法与条件拼接细节。
RELATED

相关推荐

13 种关节 5 分钟搞定多零件装配|FreeCAD Assembly 实战指南

13 种关节 5 分钟搞定多零件装配|FreeCAD Assembly 实战指南

13 种关节 5 分钟搞定多零件装配|FreeCAD Assembly 实战指南 【免费下载链接】FreeCAD Official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler. 项目地址: https://gitcode.com/GitHub_Trending/fr/FreeCAD 想让曲柄…

📅 2026/11/10 16:49:22
Arnis 使用教程:5 步把真实街区搬进 Minecraft

Arnis 使用教程:5 步把真实街区搬进 Minecraft

Arnis 使用教程:5 步把真实街区搬进 Minecraft 【免费下载链接】arnis Generate any location from the real world in Minecraft with a high level of detail. 项目地址: https://gitcode.com/GitHub_Trending/ar/arnis 想在 Minecraft 里还原自己生活的街…

📅 2026/9/23 2:24:20
如何用 khan-dl 快速拉下 Khan Academy 全部课程视频

如何用 khan-dl 快速拉下 Khan Academy 全部课程视频

如何用 khan-dl 快速拉下 Khan Academy 全部课程视频 【免费下载链接】khan-dl Download courses from khanacademy.org 项目地址: https://gitcode.com/gh_mirrors/kh/khan-dl 用 khan-dl 下载课程视频,Khan Academy 的课就能离线看。这是个 Python 命令行…

📅 2026/9/11 8:56:39
MORE NEWS

更多资讯

📰

初级电工证证书样子多久拿证,学历不高也能考

初级电工证证书样子多久拿证,学历不高也能考 你是不是因为学历不高,一直担心自己报不了名?其实,初级电工证报考对学历要求非常低,基本上初中以上学历就可以报名了,完全不用担心学历问题。今天我们就来聊聊初级电工证证书的样子、多久拿证,还有它对咱们…

📰

查特种作业操作证查询怎么报名?外省证转过来不费劲

查特种作业操作证查询怎么报名?外省证转过来不费劲 之前考的证在外省能不能转过来?这个问题其实困扰了太多人,特别是像我这样在洛阳房建工程一线干活的工人,很多时候项目是流动的,证书跟着人走是刚需。但很多人不知道的是, 查特种作业操作证查询…

📰

电工证哪能查电子证书怎么查最靠谱

电工证哪能查电子证书怎么查最靠谱 实操考试心里没底怕挂科,尤其是对新手电工来说,考试前总担心自己准备不够,怕一不小心就挂掉。其实,现在查电工证电子证书已经不像以前那么麻烦,但很多人还是不知道在哪里查最靠谱,今天我就从 鹤壁房建工程从业者…

📰

许村考电工证千万别踩坑:外省证怎么转?全攻略来了

许村考电工证千万别踩坑:外省证怎么转?全攻略来了 之前考的证在外省能不能转过来?这是很多在许村准备考电工证的人最关心的问题。别急,下面我给你讲清楚, 许村考电工证千万别踩坑 ,尤其如果你手里有外省的电工证,一定要注意这些细节。…

📰

动车电工证真实经历:劳务班组负责人避坑指南

动车电工证真实经历:劳务班组负责人避坑指南 不知道去哪报名怕被中介坑,我之前也踩过坑,差点把班组的电工岗耽误了。今天就从一个劳务班组负责人的角度,讲讲动车电工证的那些事,希望帮你避坑。 案例背景:班组电工被查,差点被罚…

📰

特种工变更申请表郑州报考避坑指南:选对机构才能稳拿证

特种工变更申请表郑州报考避坑指南:选对机构才能稳拿证 你是不是也遇到过这种情况?手头有个【特种工变更申请表】要填,但不知道去哪报名,怕被中介坑?尤其是郑州这边,培训机构五花八门,真假难辨,一不小心就交了钱,结果连个准考证都拿不到。今天就从平…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬