簡體   English   中英

MULE ESB:將SQL查詢的結果保存在會話變量中

[英]MULE ESB: Saving result from Sql query in Session Variable

我創建了一個示例m子應用程序,該應用程序從數據庫中獲取一行。 它從數據庫中獲取USER_NAME和USER_ID。 當我將結果轉換為JSON或XML時,我得到的輸出為

[{ “USER_ID”: “U001”, “USER_NAME”: “Dharmin”}]

現在我想將USER_ID和USER_NAME保存在Session 變量中 有人可以指導我嗎?

編輯:更新了基本流程圖像

http://imgur.com/PzvG5eW

轉換為JSON后,添加以下內容:

<json:json-to-object-transformer returnClass="java.util.HashMap" doc:name="JSON to Object"/>

然后使用以下命令將值放入會話變量:

<set-session-variable doc:name="Session Variable" value="message.payload.USER_ID" variableName="USER_ID"/> 

<set-session-variable doc:name="Session Variable" value="message.payload.USER_NAME" variableName="USER_NAME"/>

您是否需要將DB的結果用作Json?

如果不是,在將值保存到sessionVars之前,甚至不必費心將值轉換為JSON。 在數據庫調用之后,直接從有效負載訪問它們:

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

這是配置XML:

<flow name="testsFlow">

    <db:select config-ref="ORacle_DBCP_Config" doc:name="inputdata">
        <db:parameterized-query><![CDATA[SELECT 'U001' AS USER_ID, 'Dharmin' AS USER_NAME FROM DUAL]]></db:parameterized-query>
    </db:select>
    <set-session-variable variableName="userName" value="#[payload[0].USER_NAME]" doc:name="userName"/>
    <set-session-variable variableName="userID" value="#[payload[0].USER_ID]" doc:name="userID"/>
    <logger message="#[&quot;UserID: &quot; + sessionVars.userID + &quot; | UserName: &quot; + sessionVars.userName]" level="INFO" doc:name="Output the test"/>
</flow>

記錄器的輸出為:

processor.LoggerMessageProcessor: UserID: U001 | UserName: Dharmin

暫無
暫無

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

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