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:从咖啡到 RAG,十分钟跑通语义搜索实战

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

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

2026/8/24 4:59:41 阅读更多 →
长篇故事拆分短剧:从原始文本到可生产分集脚本

长篇故事拆分短剧:从原始文本到可生产分集脚本

我是四人改编工作室,主要做网文向仿真人短剧与漫剧改编,两人负责文本拆解与剧本润色,一人负责角色资产梳理,我负责把分集脚本对接故事板与画面生产。项目经常遇到长篇原始文本信息量过载,AI拆分出来的集数主线散乱、钩…

2026/8/24 4:58:37 阅读更多 →
KKCE IP查询:一篇用全

KKCE IP查询:一篇用全

一、同一个功能&#xff0c;四种人的四种用法 IP查询大概是网络工具里"看起来最简单、用起来最分化"的一个&#xff1a;有人用它查一下归属地就关掉了&#xff0c;有人却靠它盘网段、验调度、追可疑来源。差别不在工具&#xff0c;在于知不知道它还能干什么。 <…

2026/8/24 4:58:37 阅读更多 →

最新新闻

Data Agent:基于强化学习的动态数据选择策略实现与优化

Data Agent:基于强化学习的动态数据选择策略实现与优化

1. 项目概述&#xff1a;当数据选择成为一门学问在机器学习项目的日常推进中&#xff0c;我们常常会陷入一种“数据焦虑”&#xff1a;面对海量的、质量参差不齐的原始数据&#xff0c;究竟该喂给模型哪一部分&#xff1f;是全部丢进去让模型自己“大海捞针”&#xff0c;还是凭…

2026/8/24 9:36:00 阅读更多 →
Songloft网络歌曲与电台实操指南:透明缓存与后台离线听的完整教程

Songloft网络歌曲与电台实操指南:透明缓存与后台离线听的完整教程

Songloft网络歌曲与电台实操指南&#xff1a;透明缓存与后台离线听的完整教程 【免费下载链接】songloft &#x1f3b5; 插件化、无广告的免费音乐服务器 项目地址: https://gitcode.com/gh_mirrors/so/songloft Songloft 是一款插件化、无广告的免费音乐服务器&#xf…

2026/8/24 9:36:00 阅读更多 →
C++模板类中友元机制深度解析:从语法陷阱到工程实践

C++模板类中友元机制深度解析:从语法陷阱到工程实践

1. 项目概述与核心价值看到“PTA选择判断——2019_4Friend and Template”这个标题&#xff0c;很多正在准备程序设计类考试或刷题的同学可能会心一笑&#xff0c;或者眉头一皱。这显然是一道来自PTA&#xff08;程序设计类实验辅助教学平台&#xff09;的题目&#xff0c;具体…

2026/8/24 9:36:00 阅读更多 →
Go集合库collection:从安装到链式调用,5分钟快速上手教程

Go集合库collection:从安装到链式调用,5分钟快速上手教程

Go集合库collection&#xff1a;从安装到链式调用&#xff0c;5分钟快速上手教程 【免费下载链接】collection go collection package for fasting coding 项目地址: https://gitcode.com/gh_mirrors/collection6/collection collection 是一款专为业务开发打造的 Go 集…

2026/8/24 9:36:00 阅读更多 →
FFMS2核心架构剖析:C++如何优雅封装FFmpeg的demux/decode复杂API?

FFMS2核心架构剖析:C++如何优雅封装FFmpeg的demux/decode复杂API?

FFMS2核心架构剖析&#xff1a;C如何优雅封装FFmpeg的demux/decode复杂API&#xff1f; 【免费下载链接】ffms2 An FFmpeg based source library and Avisynth/VapourSynth plugin for easy frame accurate access 项目地址: https://gitcode.com/gh_mirrors/ff/ffms2 F…

2026/8/24 9:36:00 阅读更多 →
显示器热插拔工作区自动重排揭秘:split-monitor-workspaces如何做到即插即用

显示器热插拔工作区自动重排揭秘:split-monitor-workspaces如何做到即插即用

显示器热插拔工作区自动重排揭秘&#xff1a;split-monitor-workspaces如何做到即插即用 【免费下载链接】split-monitor-workspaces A small lua package for Hyprland to provide awesome-like workspace behavior 项目地址: https://gitcode.com/gh_mirrors/sp/split-moni…

2026/8/24 9:35:00 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力&#xff1b;确需渲染 HTML 时&#xff0c;先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述&#xff1a;Windows登录密码的“黑匣子”每次你按下CtrlAltDel&#xff0c;输入密码&#xff0c;然后看到那个熟悉的桌面&#xff0c;这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者&#xff0c;我经常被问到&#xff1a;“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述&#xff1a;AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时&#xff0c;遇到一个典型案例&#xff1a;候选人在视频面试中无意提到竞争对手产品名称&#xff0c;系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态&#xff0c;宏观上观察到的光是由无数个微观的光量子组成的&#xff0c;每个光子在产生的瞬间&#xff0c;其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前&#xff0c;在微观层面&#xff0c;每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”&#xff0c;而是SIP会话的动态重定向你有没有遇到过这样的场景&#xff1a;客服坐席A正在和客户通电话&#xff0c;突然需要把这通对话无缝转给专家坐席B&#xff0c;客户完全感知不到中间的断连——既没听到忙音&#xff0c;也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack&#xff1f;如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法&#xff0c;那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →