我使用WSO2 ESB 4.8.1
创建了ESB代理目前,DBLookup介体包含以下sql
<sql>select A, B, C from cis-dev.table1 where ... </sql>
由于cis-dev模式特定于开发环境,因此我需要将此查询存储在代理之外,以便将代理服务迁移到QA和PROD环境。
有没有办法在WSO2 ESB中实现这一目标?
谢谢,
答案 0 :(得分:0)
外部没有直接的存储查询方式,并根据环境调用它。但您可以参数化查询并使用请求传递参数以更改查询中的值。请参阅下面的示例
<dblookup>
<connection>
<pool>
<driver>org.apache.derby.jdbc.ClientDriver</driver>
<url>jdbc:derby://localhost:1527/esbdb;user=esb;password=esb</url>
<user>esb</user>
<password>esb</password>
</pool>
</connection>
<statement>
<sql>select * from company where name =?</sql>
<parameter expression="//m0:getQuote/m0:request/m0:symbol"
xmlns:m0="http://services.samples" type="VARCHAR"/>
<result name="company_id" column="id"/>
<result name="company_price_0" column="price" rowIndex="2"/>
<result name="company_price_1" column="price" rowIndex="4"/>
</statement>
</dblookup>