不使用基于java的tasklet执行存储过程

不使用基于java的tasklet执行存储过程,java,spring-batch,Java,Spring Batch,我能够通过实现tasklet来执行存储过程 但是可以从configuration job.xml文件执行存储过程吗?StoredProcedureItemReader的工作原理类似于JdbcCursorItemReader,只是它不运行查询来获取游标,而是运行返回游标的存储过程。存储过程可以通过三种不同的方式返回光标: 作为返回的结果集(由SQL Server、Sybase、DB2、Derby和 MySQL) 作为ref游标作为out参数返回(由Oracle和 PostgreSQL) 作为存储函

我能够通过实现tasklet来执行存储过程


但是可以从configuration job.xml文件执行存储过程吗?

StoredProcedureItemReader的工作原理类似于
JdbcCursorItemReader
,只是它不运行查询来获取游标,而是运行返回游标的存储过程。存储过程可以通过三种不同的方式返回光标:

  • 作为返回的结果集(由SQL Server、Sybase、DB2、Derby和 MySQL)

  • 作为ref游标作为out参数返回(由Oracle和 PostgreSQL)

  • 作为存储函数调用的返回值

  • Java配置示例

    @Bean
    public StoredProcedureItemReader reader(DataSource dataSource) {
            StoredProcedureItemReader reader = new StoredProcedureItemReader();
    
            reader.setDataSource(dataSource);
            reader.setProcedureName("sp_customer_credit");
            reader.setRowMapper(new CustomerCreditRowMapper());    
            return reader;
    }
    
    如果你想返回游标

    @Bean
    public StoredProcedureItemReader reader(DataSource dataSource) {
            StoredProcedureItemReader reader = new StoredProcedureItemReader();
    
            reader.setDataSource(dataSource);
            reader.setProcedureName("sp_customer_credit");
            reader.setRowMapper(new CustomerCreditRowMapper());
            reader.setRefCursorPosition(1);
    
            return reader;
    }
    

    是的,你是对的,但我的要求不同。我不想使用返回的itemReader,而只是执行我的存储过程。然后taskle是选项。为什么要在job.xml中实现它?