涉及 2 个单独的数据库,并且两者在物理上都是 2 个不同的地方。在我的应用程序中,我使用了 spring batch 并像这样实现:
1.Fetching all ids from AS/400 database(Master DB) 2.comparing with MY SQL db (my application) ids 以及 sql db 中存在的 Ids,我将这些 IDS 信息更新到我的本地 DB(MY SQL)。缺点:假设 AS400 DB 有 10 个 id,而在我的应用程序中只有 2 个 id,但为了获取这些数据,我实际上是在读取所有 10 个 ID。如此浪费时间和效率低下吧?!
这是我在春季批处理中用于获取数据的代码:
<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 个数据库并获取数据?
任何想法,建议将不胜感激。提前致谢..