簡體   English   中英

Mule和JDBC查詢結果

[英]Mule and JDBC Query Result

我正在使用m子連接到Postgres數據庫服務器。 由於使用社區版,因此無法使用數據映射器。 xml轉換器的對象未提供良好的格式化結果。 關於如何將jdbc響應轉換為良好的解析格式的任何想法。 這是我的配置文件。 這是帶有連接器的數據源。

<jdbc:postgresql-data-source name="PostgreSQL_Data_Source"
    user="USERNAME" password="PASSWORD"
    url="jdbc:postgresql://*******:***/*****"
    transactionIsolation="UNSPECIFIED" doc:name="PostgreSQL Data Source" />
    <jdbc:connector name="organizations" dataSource-ref="PostgreSQL_Data_Source"
        validateConnections="true" queryTimeout="-1" pollingFrequency="0"
        doc:name="JDBC">
        <jdbc:query key="getOrganizations" value="SELECT * FROM organization" />
        <jdbc:query key="getOrganizationApplications"
            value="SELECT * FROM organization o,application a,organization_apps oa WHERE o.id=oa.org_id AND a.id=oa.app_id AND o.id=#[flowVars['org_id']]" />
        <jdbc:query key="insertOrganization"
            value="INSERT INTO organization(name, phone, email, address, website) VALUES (?, ?, ?, ?, ?)" />
        <jdbc:query key="getOrganizationUsers"
            value="SELECT * FROM &amp;quot;public&amp;quot;.user WHERE org_id=#[flowVars['org_id']]" />
    </jdbc:connector>

這是流程:

<flow name="logixy-platform-organizations-workflow" doc:name="logixy-platform-organizations-workflow">
        <http:inbound-endpoint exchange-pattern="request-response"
            host="localhost" port="8082" doc:name="HTTP" path="organization" />
        <set-variable variableName="choice"
            value="#[message.inboundProperties['choice']]" doc:name="Set Choice" />
        <choice doc:name="Choice">
            <when expression="#[flowVars['choice'] == '0']">
                <jdbc:outbound-endpoint exchange-pattern="request-response"
                    queryTimeout="-1" doc:name="getAllOrganizations" connector-ref="organizations"
                    queryKey="getOrganizations" />
            </when>
            <when expression="#[flowVars['choice'] == '2']">
                <set-variable variableName="org_id"
                    value="#[(int)(message.inboundProperties['org_id'])]" doc:name="Set Organization ID" />
                <jdbc:outbound-endpoint exchange-pattern="request-response"
                    queryKey="getOrganizationUsers" queryTimeout="-1" connector-ref="organizations"
                    doc:name="getOrganizationUsers" />
            </when>
            <when expression="#[flowVars['choice'] == '1']">
                <set-variable variableName="#['org_id']"
                    value="#[(int)(message.inboundProperties['org_id'])]" doc:name="Set Organization ID" />
                <jdbc:outbound-endpoint exchange-pattern="request-response"
                    queryKey="getOrganizationApplications" queryTimeout="-1"
                    connector-ref="organizations" doc:name="getOrganizationApplications" />
            </when>
        </choice>
        <mulexml:object-to-xml-transformer
            doc:name="Object to XML" />
    </flow>

您應該真正定義“一種很好的解析格式”,但是我想您不喜歡“ entry”,“ string”等字段名稱。

您可以使用很多選項來格式化XML,例如:

  1. 使用XSLT將生成的XML轉換為您首選的格式
  2. 在Java或Groovy中定義一個與您的返回數據相對應的類,然后
    1. 使用對象到json,然后將json到對象與您的類作為返回類
    2. 將返回數據分配給Java或Groovy中的類的對象

一旦將數據作為自定義對象,object-to-xml-transformer就會打印出更清晰的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM