小编Yas*_*CHI的帖子

使用2个不同的数据源:Spring批处理

我有2个不同的数据源,一个用于读取,另一个用于写入如下结果:

  • ItemReader应该从dataSource_1获取数据.
  • ItemWriter应该将数据写入dataSource_2.

知道读者和作者在同一个tasklet中.

根据文档,我们可以在tasklet上配置单个事务管理器

在这种情况下,我如何在这里使用事务管理器?

我不能依赖容器,我不使用ORM层(JPA ..),我使用直接JDBC驱动程序读入数据库1并写入database2.

当前conf:

<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${batch.or.jdbc.driver}" />
    <property name="url" value="${batch.or.jdbc.url}" />
    <property name="username" value="${batch.or.jdbc.user}" />
    <property name="password" value="${batch.or.jdbc.password}" />
</bean>

<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${batch.caux.jdbc.driver}" />
    <property name="url" value="${batch.caux.jdbc.url}" />
    <property name="username" value="${batch.caux.jdbc.user}" />
    <property name="password" value="${batch.caux.jdbc.password}" />
</bean>

<bean id="baseReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
        <property name="dataSource" ref="dataSource1" />
</bean>

<bean id="baseWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter">
        <property name="dataSource2" ref="dataSource2" />
        <property name="sql" value="${batch.param.insert}" />
</bean>
Run Code Online (Sandbox Code Playgroud)

我如何使用Spring Batch配置JTA/XA事务(Atomikos)?

java spring spring-batch

6
推荐指数
1
解决办法
5327
查看次数

如何定义我的ItemReader:Spring批处理,JPA

我想实现一个批处理,它将从数据库中读取数据并进行处理以插入到另一个数据库中.我如何定义我的ItemReader?例?知道我用jpa.

java spring

4
推荐指数
1
解决办法
6952
查看次数

spring batch:没有ItemWriter的Tasklet

我在没有ItemWriter的情况下定义了我的tasklet,如下所示:

<b:tasklet>
    <b:chunk reader="baseReader" processor="baseProcessor"  commit-interval="100" />
</b:tasklet>
Run Code Online (Sandbox Code Playgroud)

我收到了这个错误:

配置问题:<b:chunk/>元素既没有'writer'属性也没有<writer/>元素.

你有什么主意吗 ?谢谢

java spring spring-batch

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×3

spring ×3

spring-batch ×2