我们可以在Spring Batch ItemProcessor中使用存储过程吗?

时间:2011-11-16 11:38:15

标签: stored-procedures spring-batch

我做了一些搜索,但找不到任何样本/示例。

我需要读取一个表(输入)中的某些信息,并将其处理为需要调用多个存储过程的迭代处理器(业务逻辑)。因此,将产生一个或多个对象,并且需要将其插入另一个表(输出)。

有什么想法吗? TIA。

2 个答案:

答案 0 :(得分:0)

来自官方Spring Batch Docs: ItemProcessors

  

如果您想在写作之前插入业务逻辑怎么办?一种选择   写作就是使用复合模式:创建一个ItemWriter   包含另一个ItemWriter

同一段

  

但是,如果您只想“转换”传入的项目   在实际写入之前写作,没有太多需要打电话   写自己:你只想修改项目。对于这种情况,   Spring Batch提供ItemProcessor接口

imho使用ItemProcessor不仅仅是为了简单的“转换”而是为了丰富,持久等等而没有问题

对于您的特定用例,提到的(ItemWriter)复合模式可能就足够了

答案 1 :(得分:0)

不幸的是,提供的Spring Batch JdbcBatchItemWriter只能执行update - 语句。您需要使用SimpleJdbcCallItemWriter辅助类来编写GenericStoredProcedure接口的实现(请参阅StoredProcedure#execute()方法)。