Как мне получить свой собственный метод Reader для передачи фрагментов методу Write(Chunk<> chunk) моего клиента на этапJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как мне получить свой собственный метод Reader для передачи фрагментов методу Write(Chunk<> chunk) моего клиента на этап

Сообщение Anonymous »

Я пытаюсь создать пакетную программу в Spring, которая вызывает мою базу данных через программу чтения, используя JdbcCursorItemReader. Я предполагаю, что после создания средства чтения элементов этот шаг выполняет итерацию по нему. Далее речь идет о средстве записи, я хочу вызвать метод write(Chunk chunks), который я переопределяю из ItemWriter, но он никогда его не вызывает. и когда я это сделаю (предположим, я поместил customReader.read() в read() в построителе шагов), я не могу сделать то же самое с write(Chunk chunks), поскольку он принимает параметр.
Я получил реализацию для работы, где я создаю две функции в моем файле конфигурации: read() и write(), где Reader вызывает read() в customReader, возвращая средство чтения элементов. Затем я перебираю его, добавляя каждую запись в чанк (список), созданный вне методов. Затем я бы вернул читателя, когда он стал нулевым. Затем, когда писатель был вызван в части писателя в построителе шагов, я снова вызвал метод в своей конфигурации, но на этот раз метод писателя. Потребовалось бы взять этот Chunk(List), который я создал вне методов, и использовать его в качестве параметра для write() в моем классе customWriter. тогда я бы просто вернул введенный мной объект customWriter. Это было вдохновлено тем, что я увидел в документации.
https://docs.spring.io/spring-batch/ref ... ssing.html
Но, судя по тому, что я слышал, это не то, как это следует делать, поскольку это основная работа, и я могу сбить ее с толку, когда работа станет больше или что-то в этом роде. Что-то насчет шага .chunk(chunkSize,transactionManager), до сих пор не уверен.
Я надеялся на какое-то руководство по этой проблеме, которая у меня возникла. Если вам нужна дополнительная информация, не стесняйтесь спрашивать.
Изменить:
Предоставление кода
Читатель:public JdbcCursorItemReader itemReader() throws Exception {
System.out.println("We are in the database reader");

PreparedStatementSetter preparedStatementSetter=new PreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps) throws SQLException {
//code...
}
};

Chunk items=new Chunk();

JdbcCursorItemReader itemReader = new JdbcCursorItemReader();
itemReader.setDataSource(dataSource);
itemReader.setPreparedStatementSetter(preparedStatementSetter);
itemReader.setName("name");
itemReader.setSql("SQL"); //assume there is code in there and it works
itemReader.setRowMapper(new CustomRowMapper());

ExecutionContext executionContext = new ExecutionContext();
itemReader.open(executionContext);
int counter = 0;
Object myEntity = new Object();
while(myEntity != null){
myEntity = itemReader.read();
if(myEntity==null) break;
items.add( myEntity);
counter++;
}
itemReader.close();

return itemReader;
}

Писатель:
@Override
public void write(Chunk

Подробнее здесь: https://stackoverflow.com/questions/790 ... stomerwrit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»