2014-10-17 74 views
1

我應該從特定數據庫提取數據並將其放入XML文件中。從春季批次中提取不同數據庫表中的數據

但是隻能通過對數據庫的不同表執行多個查詢來獲得數據。

這裏是我的配置:

<!-- Reader for getting msisdn --> 
<bean id="pagingdbItemReader2" 
    class="org.springframework.batch.item.database.JdbcPagingItemReader" 
    scope="step"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="queryProvider"> 
     <bean 
      class="org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean"> 
      <property name="dataSource" ref="dataSource" /> 
      <property name="selectClause" value="SELECT SUBSTR(DN_NUM,4) AS MSISDN" /> 
      <property name="fromClause" 
       value="FROM contr_services_cap cs, directory_number d" /> 
      <property name="whereClause" 
       value="WHERE co_id in (select co_id from contract_all where customer_id =:CUSTOMER_ID) 
         AND cs.dn_id = d.dn_id 
         AND cs.sncode = 1 
         AND CS.MAIN_DIRNUM = 'X'" /> 
      <property name="sortKey" value="MSISDN" /> 
     </bean> 
    </property> 
    <property name="parameterValues"> 
     <map> 
      <entry key="CUSTOMER_ID" value="#{jobParameters['CUSTOMER_ID']}" /> 
     </map> 
    </property> 
    <property name="pageSize" value="10" /> 
    <property name="rowMapper"> 
     <bean class="com.ooredoo.model.inputDB.MSISDNRowMapper" /> 
    </property> 
</bean> 

<!-- Writer for getting msisdn --> 
<bean id="dbItemWriter2" class="org.springframework.batch.item.xml.StaxEventItemWriter"> 
    <property name="resource" value="file:xml/outputs/DonneesFactureFromDB.xml" /> 
    <property name="marshaller" ref="dbMarshaller2" /> 
    <property name="rootTagName" value="Facture" /> 
</bean> 

<!-- Marshaller for getting msisdn --> 
<bean id="dbMarshaller2" class="org.springframework.oxm.xstream.XStreamMarshaller"> 
    <property name="aliases"> 
     <util:map id="aliases"> 
      <entry key="msisdn" value="com.ooredoo.model.inputDB.MSISDN" /> 
     </util:map> 
    </property> 
</bean> 

要我做這一切的配置(並創建相應的Java類),每次查詢?


編輯:

我做這個配置使用查詢 「A」,以提取數據庫中的數據(和它的工作)。所以我的問題是:我是否應該爲每個要執行的查詢編寫相同的配置(包括讀者,作者,編組...)還是可以寫一些「查詢組」 「可以一個接一個執行並將結果呈現爲一個XML文件?

+0

我可以寫我自己的自定義作家嗎? – Siho 2014-10-17 17:17:36

+0

沒有人有我的問題的想法:(? – Siho 2014-10-20 09:01:38

+0

對不起,這個問題太廣泛了,而且它似乎與JAXB無關,因爲你顯然使用XStream。 – lexicore 2014-10-20 09:18:59

回答

0

我認爲你需要創建多個閱讀器進行每個查詢,然後使用複合模式將它們鏈接在一起。

HTH

+0

您能否提供示例代碼或鏈接以支持您的答案? – 2016-04-02 07:44:27

相關問題