当前位置: 首页 > 知识库问答 >
问题:

spring批处理调用存储过程

章哲茂
2023-03-14

我正在编写一个Spring批处理应用程序:

    null
@Slf4j
public class PriceWriter implements ItemWriter<Price> {


    private final PriceDAO pd;

    public PriceDAO(PriceDAO pd) {
        this.pd = pd;
    }

    @Override
    public void write(List<? extends Price> items) throws Exception {
        log.info("Ready to write {} items " + items.size());
        pd.insert(items);
    }
}



@Repository
public class PriceDAOImpl implements PriceDAO {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @Override
    public void insert(List<? extends Price> prices) {
        prices.forEach(e -> {
            System.out.println("Calling Stored Procedure For Records:  " + e.toString());
        });
    }
}

共有1个答案

那宏大
2023-03-14

您可以任意调用存储过程来存储数据。没有ItemWriter可以做到这一点,但是,您可以遵循两种方法:

  • Direclty在Writer中调用您的SP
  • 实现一个服务,拥有SP的映射并调用它。
 类似资料:
  • 我已经开始探索Spring Batch,并遇到了一些基本问题。

  • 我定义了一个块,提交间隔为10,跳过限制为10。处理器类通过应用一些算术运算来操作字段。其中一条记录(比如第6条记录)在处理器类中发生异常。在此之后,再次处理1到5条记录,跳过第6条记录,处理7到10条记录,并将其写入XML(自定义XML编写器类)。由于处理器处理1-5条记录两次,因此预期字段值计算两次是错误的。您能否建议一种解决方案,让处理器只处理一次记录,只跳过失败的记录,并将处理后的记录写入

  • 关于skip,我有一个非常基本的问题。我正在使用spring示例提供的spring batch simple cli项目,并试图理解跳过行为。它有一个非常基本的示例读取器,可以读取字符串数组(我将其修改为从Hellowworld 1到Hellowworld 10的10个字符串列表中读取),还有一个基本的编写器,可以登录到控制台。writer抛出java。每写一次都有例外。我在作业配置中增加了4个跳

  • 快速免责声明:我是一个。Net开发人员,可能没有提供您需要的有关环境的所有信息,但可以根据要求获取信息。我们有COBOL程序员,但他们从来没有这样做过。 我们正在将带有DB2数据库的大型机应用程序转换为。Net MVC应用程序和SQL数据库。我们希望从DB2上的COBOL存储过程调用一个大型机COBOL批处理程序。我读过这篇文章,但是我还没有找到一个好的例子来说明如何创建一个调用COBOL程序的C

  • 这似乎是一个愚蠢的问题。我正在尝试为Spring Batch作业存储库(Spring Batch 2.1.7)配置Oracle10g数据库,我能够使用在core中的org/spring框架/批/core/schema-oracle10g.sql可用的脚本创建表。我还将属性batch.data.source.init设置为false。 在干净的数据库上,我的批处理程序运行良好,成功地创建了所有批处理

  • 我有一个自定义跳过管理步骤。我定义了一个跳过策略,其源代码如下: 我的Skip侦听器如下: 我的步骤定义如下: 我想跳过一个约束冲突异常。但是,不会调用侦听器或跳过策略。