【问题标题】:Connecting two databases and writting in single query?连接两个数据库并写入单个查询?
【发布时间】:2013-07-15 06:08:22
【问题描述】:

涉及 2 个单独的数据库,并且两者在物理上都是 2 个不同的地方。 在我的应用程序中,我使用了 Spring Batch 并像这样实现:

1.从 AS/400 数据库(主数据库)中获取所有 id 2. 与 MY SQL db(我的应用程序)ID 和 sql db 中存在的 ID 进行比较,我将这些 IDS 信息更新到我的本地 DB(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)中存在的数据的解决方案。 是否可以通过spring批处理作业连接2个db并获取数据??

任何想法,建议将不胜感激。 提前谢谢..

【问题讨论】:

  • 在您的示例中,您提到了 10 行和 2 行。这是否表明您期望的交易量?如果基数像这样低,那么合理的策略可能与数量级为数千或数百万时完全不同。

标签: java mysql sql spring ibm-midrange


【解决方案1】:

您无法使用此查询创建数据库视图吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 2014-03-06
    • 1970-01-01
    • 2021-03-18
    相关资源
    最近更新 更多