2013-07-15 63 views
0

有2個獨立的數據庫涉及,兩個在phisically 2個不同的地方。 在我的應用程序,我用彈簧一批像這樣實現的:連接兩個數據庫並寫入單個查詢?

1.Fetching所有的ID從AS/400數據庫(主數據庫) 與MY SQL數據庫(我的應用程序)的ID和以往的IDS存在什麼2.comparing在sql db中,我正在將這些IDS信息更新到我的本地數據庫(MY SQL)。 缺點: 假設AS400 DB有10個ID,並且在我的應用程序中只有2個ID,但爲了得到這個數據,我實際上讀取了所有10個ID。所以浪費時間和缺乏效率吧?!

這裏是我使用Spring Batch的獲取數據的代碼:

<bean id="patternsItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader"> 
        <property name="sql" value="SELECT 
                 J3PATT AS patternId, 
                 J3PTYP AS patternType, 
                 J3CLAS AS PatternClass, 
                 J3REPT AS repeat, 
                 j3CLRS AS numOfColors, 
                 JOENTT AS event, 
                 J3ACT AS activity 
                 FROM TEST006966.JQP030H a WHERE rrn(a) >=(select max(rrn(b)) from 
                 TEST006966.JQP030H b where a.j3patt = b. j3patt) and j3sts = 'N' ORDER BY 
                 J3PATT, JODATE desc ,jotime desc 
                 "/> 

         <property name="rowMapper"> 
            <bean class="org.springframework.jdbc.core.BeanPropertyRowMapper"> 
               <property name="mappedClass" value="com.mohawkind.batch.patterns.PatternsRowMapper"/> 
            </bean> 
         </property> 
         <property name="dataSource" ref="AS400DataSource" /> 
      </bean> 

     <bean id="patternsItemWriter" class="com.mohawkind.batch.patterns.PatternsWritter" /> 

我在尋找:

我想要的解決方案就取什麼在我的本地存在的數據( SQL DB)。 是否有可能通過彈簧批量作業連接2分貝和獲取數據?

任何想法,建議將不勝感激。 在此先感謝..

+0

在你的例子中你提到了10行和2行。這是您預期的音量的指示嗎?如果這樣的基數低,那麼合理的策略可能會與數量級甚至數百萬級的策略大不相同。 – WarrenT

回答

-1

是不是可以使用此查詢創建數據庫視圖?