mulesoft - 如何在 Mule4 Select Query 中添加动态参数
问题描述
我有一个 SELECT 查询,其整个 WHERE 条件都来自 Java 类。如何在 SELECT 查询中使用整个 WHERE 条件?这是我尝试过的:
SELECT * FROM EMPLOYEE_TABLE WHERE 1=1 #[payload]
这里的有效负载是来自 Java 类的 WHERE 子句:NAME = VKP AND STATE = PA AND CITY = KOP
我收到一条错误消息,例如“parameter null was not bound for query select...”,但我能够看到来自 Java 类和日志的有效负载值。
解决方案
您不应直接在查询中使用表达式。而是将表达式中的查询分配给变量,然后将该变量用作查询。
例如:
<set-variable value="#['SELECT * FROM EMPLOYEE_TABLE WHERE 1=1 ' ++ payload]" name="query" />
<db:select ...>
<db:sql>#[vars.query]</db:sql>
</db:select>
请注意,这样做可能会导致 SQL 注入漏洞。
推荐阅读
- javascript - InvalidSessionDescriptionError:答案更改中间级别,为“3”,现在为“0”
- reactjs - ReactJS 预加载导航元素
- php - 致命错误:未捕获的错误:调用成员函数 close() on
- java - 连接到 WiFi 时检查互联网连接
- yadcf - 过滤器字段在表格重绘时重置
- python - 如何从python列表中任何特定索引处的句子中提取特定字符串?
- asynchronous - 在特定时间内从其他独立处理程序通知控制器操作方法
- python - 我收到一个错误,因为列表对象没有属性“加入”
- uwsgi - 如何为 metricbeat 正确配置 uwsgi.yml?
- javascript - Angular ng-select(可编辑输入)应该只允许数字