Java 连接两个数据库并在单个查询中写入?
涉及2个独立的DB,两个DB在物理上都是2个不同的地方。 在我的应用程序中,我使用了spring批处理并实现如下: 1.从AS/400数据库主数据库获取所有ID 2.与我的SQL db我的应用程序ID和SQL db中存在的ID相比,我正在将这些ID信息更新到我的本地DBMY SQL。 缺点: 假设AS400DB有10个ID,而在我的应用程序中只有2个ID,但是为了获得这些数据 我实际上正在读取所有10个ID。所以浪费时间和缺乏效率对吧 以下是我在spring批处理中用于获取数据的代码:Java 连接两个数据库并在单个查询中写入?,java,mysql,sql,spring,ibm-midrange,Java,Mysql,Sql,Spring,Ibm Midrange,涉及2个独立的DB,两个DB在物理上都是2个不同的地方。 在我的应用程序中,我使用了spring批处理并实现如下: 1.从AS/400数据库主数据库获取所有ID 2.与我的SQL db我的应用程序ID和SQL db中存在的ID相比,我正在将这些ID信息更新到我的本地DBMY SQL。 缺点: 假设AS400DB有10个ID,而在我的应用程序中只有2个ID,但是为了获得这些数据 我实际上正在读取所有10个ID。所以浪费时间和缺乏效率对吧 以下是我在spring批处理中用于获取数据的代码: <
<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数据库中存在的数据的解决方案。
是否可以连接2 db并通过spring批处理作业获取数据
如有任何想法和建议,将不胜感激。
提前感谢。您不可能使用此查询创建数据库视图吗?在您的示例中,您提到了10行和2行。这是否表示您期望的音量?如果基数像这样低,那么合理的策略可能与数量级为数千或数百万的策略大不相同。