一键导入
ewa-sql-params
Extract SQL parameters from EWA XML config (UserConfig ActionSet/SqlSet) for API documentation or analysis
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Extract SQL parameters from EWA XML config (UserConfig ActionSet/SqlSet) for API documentation or analysis
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | ewa-sql-params |
| description | Extract SQL parameters from EWA XML config (UserConfig ActionSet/SqlSet) for API documentation or analysis |
| source | auto-skill |
| extracted_at | 2026-06-26T08:37:53.918Z |
The EWA framework stores SQL in XML configuration files accessed via UserConfig:
EasyWebTemplate
→ Action (stored in UserActionItem, a UserXItem)
→ ActionSet (each has Type: OnPageLoad, OnFrameDelete, OnPagePost, etc.)
→ CallSet (CallType="SqlSet", CallName="OnFrameDelete SQL")
→ SqlSet (contains actual SQL statements)
→ Set (Name="OnFrameDelete SQL", SqlType="update")
→ Sql (CDATA with SQL text containing @paramName placeholders)
import com.gdxsoft.easyweb.script.userConfig.UserConfig;
import com.gdxsoft.easyweb.script.userConfig.UserXItem;
import com.gdxsoft.easyweb.script.userConfig.UserXItemValue;
import com.gdxsoft.easyweb.script.userConfig.UserXItemValues;
// 1. Load config by xmlName and itemName
UserConfig uc = UserConfig.instance(xmlName, itemName, null);
// 2. Get the Action item (UserXItem, not UserXItems)
UserXItem actionItem = uc.getUserActionItem();
// 3. Access SqlSet child items
if (actionItem.testName("SqlSet")) {
UserXItemValues sqlSets = actionItem.getItem("SqlSet");
for (int i = 0; i < sqlSets.count(); i++) {
UserXItemValue sqlItem = sqlSets.getItem(i);
if (sqlItem.testName("Sql")) {
String sql = sqlItem.getItem("Sql"); // actual SQL text
String sqlType = sqlItem.getItem("SqlType"); // "query", "update", "procedure"
}
}
}
EWA uses @paramName syntax in SQL (replaced with JDBC ? at runtime). Extract with regex:
private static List<String> extractSqlParameters(String sql) {
List<String> params = new ArrayList<>();
Pattern pattern = Pattern.compile("@([A-Za-z_][A-Za-z0-9_]*)");
Matcher matcher = pattern.matcher(sql);
while (matcher.find()) {
String param = matcher.group(1);
if (!params.contains(param)) {
params.add(param);
}
}
return params;
}
| Class | Package | Purpose |
|---|---|---|
UserConfig | ...script.userConfig | XML config loader; instance(xmlName, itemName, null) |
UserXItem | ...script.userConfig | Action item container; getUserActionItem() returns this |
UserXItemValues | ...script.userConfig | Collection of UserXItemValue (from SetBase<T>) |
UserXItemValue | ...script.userConfig | Single SQL item; getItem("Sql") returns SQL text |
UserXItems | ...script.userConfig | Collection of UserXItem (field definitions) |
Note: UserXItem (field definitions) vs UserXItemValue (SqlSet items) — different classes with similar names.
OnPageLoad — page load queryOnPagePost — form POST / insertOnFrameDelete — DELETE operation (often soft-delete via UPDATE SET status='DEL')OnFrameRestore — restore from soft-delete (UPDATE SET status='USED')EWA RESTful handler 开发/调试时,与 Frame 路径 (ServletUpload/ActionFrame) 对照确保参数映射和 SQL 执行一致性
How to write DataConnection tests using SQLite — driver version, pool setup (HikariCP/Druid), path expressions, concurrency, and API patterns
Use when: 调用 EWA Servlet API、查询数据库表结构与数据、读取或修改 EWA XML 配置项、生成业务 XML(自动创建容器)、查看配置存储路径(showScriptPaths)、直接读取 XML 文件(getXmlFile)、校验 SQL 语法(validateSql)、需要脚本化执行 login/getTables/getTable/getTableData/getConfItem/previewBusinessXml/createBusinessXml/showScriptPaths/getXmlFile/validateSql。
Use when: 通过 EWA API 查看存储过程、函数或触发器的完整定义文本。INFORMATION_SCHEMA.ROUTINES 会截断,需用 sys.sql_modules 获取完整内容。
Use when: 编写 EWA 表单前端 JS 代码、表单提交与验证、表单与列表联动、对话框中表单操作、动态字段控制、合并单元格、分组向导。按任务组织,含完整代码示例。
Use when: 编写 EWA ListFrame 列表前端 JS 代码、行数据操作、选中行、翻页排序、检索过滤、展开行详情、动态列、底部汇总、行内编辑。按任务组织,含完整代码示例。