2017-05-16 70 views
0

我使用mule的應用程序非常簡單。此應用程序應從通過http請求發送的值(人員名稱)定義的數據庫中檢索一些值。 我這裏使用的使用的示例:https://docs.mulesoft.com/mule-user-guide/v/3.6/database-connector-examples根據mule中http的屬性獲取數據庫中的值

我的流程:

<http:listener-config name="HTTP_Listener_Configuration_DB2" 
     host="localhost" port="8092" doc:name="HTTP Listener Configuration" /> 
    <flow name="database_connector_mysql2Flow"> 
     <http:listener config-ref="HTTP_Listener_Configuration_DB2" 
      path="/*" doc:name="HTTP" /> 
     <db:select config-ref="MySQL_Configuration" doc:name="Database"> 
      <db:parameterized-query><![CDATA[select Id, name, lastname, Email, phone from employee where name=#[message.inboundProperties['name']];]]></db:parameterized-query> 
     </db:select> 
     <json:object-to-json-transformer doc:name="Object to JSON"/> 
    </flow> 

運行的應用程序後,我設置以下網址瀏覽器:

http://localhost:8092/?name=Karam 

但是,所有我得到的是隻有空括號[]

我懷疑這部分mySql查詢不正確:

其中name =#[message.inboundProperties [ '名']]

任何幫助嗎?

回答

0

你運行在https://docs.mulesoft.com/mule-user-guide/v/3.6/database-connector-examples

腳本你在你的員工表有名字列?你有沒有關於'Karam'這個名字的記錄?

查詢更改爲 where name=#[message.inboundProperties.'http.query.params'.name]

+0

我使用另一個數據庫。我有'卡拉姆' –

+0

也recod名稱另外,如果我使用以下查詢:選擇ID,姓名,姓氏,電子郵件,來自員工的電話,其中名稱='卡拉姆';它工作沒有問題。只有當我使用name =#[message.inboundProperties ['name']]; –

+2

這就是它在答案中所說的......你在'http:// localhost:8092 /?name = Karam'中傳遞查詢參數,並且在你正在使用'inboundProperties'的sql查詢中不起作用...使用'#[message.inboundProperties.'http.query.params'.name]'而不是 –

0

使用動態查詢,而不是參數化查詢。