使用Spring Batch ItemReader时,Java中的异常参数索引超出范围:0

使用Spring Batch ItemReader时,Java中的异常参数索引超出范围:0,spring,jdbc,spring-batch,sybase,spring-jdbc,Spring,Jdbc,Spring Batch,Sybase,Spring Jdbc,我正在创建一个Spring批处理作业,其项读取器定义如下: StoredProcedureItemReader<GenData> spir = new StoredProcedureItemReader<GenData>(); //Sybase data source specified spir.setDataSource(ds1); //Sybase stored proc : exec procedure_name spir.setProcedureName(p

我正在创建一个Spring批处理作业,其项读取器定义如下:

StoredProcedureItemReader<GenData> spir = new StoredProcedureItemReader<GenData>();

//Sybase data source specified
spir.setDataSource(ds1);

//Sybase stored proc : exec procedure_name
spir.setProcedureName(proc1);

spir.setRowMapper(objectRowMapper());
StoredProcedureItemReader spir=新的StoredProcedureItemReader();
//指定了Sybase数据源
spir.setDataSource(ds1);
//Sybase存储过程:exec过程\u名称
spir.setProcedureName(程序1);
setRowMapper(objectRowMapper());
其中objectRowMapper是:

private RowMapper<GenData> objectRowMapper() {
   return new RowMapper<GenData>() {

   @Override
   public GenData mapRow(ResultSet rs, int rowNum) throws SQLException {
      GenData gdo = new GenData();
      ResultSetMetaData rsmd = rs.getMetaData();
      int columnCount = rsmd.getColumnCount();
      ArrayList<String> colNames = new ArrayList<String>();

      for(int i = 1; i <= columnCount; i++) {
          String name = rsmd.getColumnName(i);
          colNames.add(name);
          //object has a map where we put the <columnName, columnValue>
          //these are supposed to be dynamic in the code hence made like this
          gdo.objectData.put(name, rs.getString(name));
       }
      return gdp;
   }
}
private行映射器objectRowMapper(){
返回新的行映射器(){
@凌驾
public GenData mapRow(ResultSet rs,int rowNum)抛出SQLException{
GenData gdo=新的GenData();
ResultSetMetaData rsmd=rs.getMetaData();
int columnCount=rsmd.getColumnCount();
ArrayList colNames=新的ArrayList();

对于(int i=1;i)您的存储过程是否接受输入参数?请共享更多详细信息(存储过程、作业配置等),以便能够以有效的方式帮助您。