当前位置: 首页 > 面试题库 >

通过数据库连接器创建SQL查询的动态Mule创建条件

鲁烨
2023-03-14
问题内容

我需要创建一个动态查询,其中条件将根据传入的请求更改,其中请求将始终通过查询参数获取。例子如下: http:// localhost:8084 /
basePath?name = balwant&age =
26

,或 http://
localhost:8084 / basePath?name = balwant&age = 26&gender =
M

同样,它是动态的。现在,我需要一种创建查询的方法,该查询将基于请求中的查询参数添加WHERE条件。


问题答案:

我想到使用自定义变压器。所以我为此使用了Java转换器。

逻辑看起来像这样:

public class QueryBuilder extends AbstractMessageTransformer {

@Override
public Object transformMessage(MuleMessage message, String outputEncoding)
        throws TransformerException {

    System.out.println("Query Params : "
            + message.getInboundProperty("http.query.params").getClass()
                    .getName());

    Map<?, ?> map = message.getInboundProperty("http.query.params");

    System.out.println("Map keys : " + map.keySet());
    String where = "";
    for (Map.Entry<?, ?> entry : map.entrySet()) {
        System.out.println(entry.getKey() + "/" + entry.getValue());
        where = where+" "+entry.getKey()+"="+"'"+entry.getValue()+"'"+" and";
    }
    String whereCondition = where.substring(0, where.lastIndexOf(" "));
    System.out.println("Where condition is : "+ where.substring(0, where.lastIndexOf(" ")));
    return whereCondition;
}}

现在,这将返回字符串类型的有效负载。

在数据库连接器中,将查询类型选择为 动态 。在 WHERE 条件之后,添加 #[payload]

干杯



 类似资料:
  • 问题内容: 对于我的应用程序,我需要在运行时进行动态数据库连接。我知道,有多种方法可以创建多个数据源,但我认为它们并不是那么动态。设想: 用户可以输入数据库凭据并连接到远程数据库,以将单个行和表导入另一个数据库。为此,我需要动态连接到远程数据库。 我试图在服务中做到这一点,就像他们在“如果在grails中使用groovy sql类”中 所说的那样,它是否使用grails连接池? 注意:在这种情况下

  • 在一些情况下,必须使用动态连接库: 1.多个应用程序共享代码和数据:比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态连接库实现的。 2.在钩子程序过滤系统消息时必须使用动态连接库 3.设备驱动程序必须是动态连接库 4.如果要在对话框编辑器中使用自己定义的控件,也必须使用动态连接库 5.动态连接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与

  • 我目前正在学习Mule ESB,有一个问题困扰着我。我用React中的前端和Node.js中的后端创建了应用程序,我希望我的API通过ESB发送数据,并插入一些来自公共SOAP API的数据。然后来自REST API和SOAP API的数据将被合并到我的前端可以使用的一个endpoint中。这可能吗?有人能推荐一些我能读到更多相关信息的地方吗?我查阅了文件,但找不到这样的情况。我用的是电脑版的An

  • 本文向大家介绍Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法,包括了Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法。分享给大家供大家参考,具体如下: 前言:laravel创建数据库,实际可以手动创建,如古老的

  • 我创建了一个简单的Spring启动应用程序,以使用相同的网络通过docker与MYSQL通信。一旦我运行命令,就会发生以下错误 雇员-jdbc-容器|java.sql.SQLNon瞬态连接异常:无法创建与数据库服务器的连接。尝试重新连接3次。放弃。 员工jdbc容器|由:com引起。mysql。cj。例外情况。UnableToConnectionException:不允许检索公钥 docker编写

  • 这是获得SQL结果集的一个非常常见的方法,因为一对多的关系······对于一个相当简单的结构执行冗余查询似乎是不必要的(而且可能是低效的)。是否有一种已建立的简单的方法将其解析为java对象?也就是说,我不想迭代ResultSet类并为每一行创建和设置一个新对象,而是要迭代集合并为每一个父行创建一个新对象,为每一个子行创建一个新对象。 例如,一种方法是按父主键对查询进行排序,然后仅当父id更改时才