如何通过使用WSO2将动态值传递给Sql

时间:2018-06-27 09:51:23

标签: wso2 db2 wso2esb wso2dss

我的要求是传递动态值,我只是暂时对值进行了硬编码,任何人都可以帮忙。预先感谢。(db2数据库)

从学生那里选择sname,其中sname喜欢('%abc123%');

它正在按预期方式选择值。但是我只是在DSS中对其进行了硬编码,如何动态传递它?

1 个答案:

答案 0 :(得分:0)

以下示例服务

<data name="dssTest" transports="http https local">              
  <config enableOData="false" id="TestDB">
    <property name="driverClassName">...</property>
    <property name="url">...</property>
    <property name="username">...</property>
    <property name="password">...</property>
  </config>
  <query id="testQuery" useConfig="TestDB">
    <sql>Select sname from student where sname like CONCAT('%', :whereclause, '%')</sql>
    <result element="StudentData" rowName="Student">
      <element column="snumber" name="snumber" optional="true" xsdType="string"/>
      <element column="sname" name="sname" optional="true" xsdType="string"/>
    </result>
    <param name="whereclause" sqlType="QUERY_STRING"/>
  </query>
  <operation name="testQueryOp">
    <call-query href="testQuery">
      <with-param name="whereclause" query-param="whereclause"/>
    </call-query>
  </operation>
</data>

调用此服务时,可以为where子句发送一个值。

<body>                                                                  
  <p:testQueryOp xmlns:p="http://ws.wso2.org/dataservice">
    <p:whereclause>abc123</p:whereclause>
  </p:testQueryOp>
</body>