繁体   English   中英

使用Mule Studio上的Java组件从数据库检索数据

[英]retrieving data from database using java component on mule studio

我需要使用Mule Studio中的Java组件从数据库中提取数据。 那是Http> SOAP> Java Component(在主类中,我将给数据库查询以从数据库中获取详细信息)> SOAP> http以xml发送请求并以xml获取响应。 当我在java类中使用硬编码值时,但是尝试从数据库中获取问题时,我得到了响应。 帮助将不胜感激。

以下是我的Java代码的一部分

String url = "jdbc:oracle:thin:@localhost:1521:XE";
Class.forName("oracle.jdbc.driver.OracleDriver");

Connection conn = DriverManager.getConnection(url, "uname", "pwd");
Statement st = conn.createStatement();
ResultSet result= st.executeQuery("select * from mule.tablename");

while(result.next())
{
    long quoteId  = result.getLong("quote_id");

    if(parameters.getQuote().getQuoteId() == quoteId)
    {
        QuoteResponseType quoteresp = new QuoteResponseType();
        quoteresp.supplierId = result.getString("supplier_id");
        quoteresp.respFreightAmount = result.getDouble("resp_freight_amount");
        quoteresp.respTaxAmount = result.getDouble("resp_tax_amount");
        quoteresp.supplierQuoteNumber = result.getString("supplier_quote_no");
        al.add(quoteresp);
    }

    NewQuoteResponse.quote.quoteResponse = al;
}

提前致谢。

您可以在Mule流中使用,并在Java实现类中使用lookupConnector进行注入,如下所示:

<spring:beans>
<spring:bean id="DB_Source" name="DB_Source"class="org.enhydra.jdbc.standard.StandardDataSource">
 <spring:property name="url" value="${url}"/>
 <spring:property name="driverName" value="${driverName}"/>
</spring:bean>
</spring:beans>
 <jdbc-ee:connector name="Database_Global" dataSource-ref="DB_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database">
     <jdbc-ee:query key="RetriveQuery" value="select * from mule.tablename"/>
 </jdbc-ee:connector>  

在Java类中,您可以使用lookupConnector获得对db组件的访问权:

jdbcConnector = (JdbcConnector) muleContext.getRegistry()
                .lookupConnector("Database_Global");

我建议您在Mule xml文件中定义一个JDBC DataSource,然后将其注入Java类中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM