簡體   English   中英

如何在春季批量創建自定義項目閱讀器

[英]How to create custom item reader in spring batch

在我的應用程序中,我使用sqlProcessor作為數據庫框架: https//github.com/hudec/sql-processor/wiki

所以,當我想要讀取對象列表時,我打電話:

List<MyClass> myClassList = myClassDao.list(...)

我應該如何在itemReader中遍歷此列表,或者如何創建使用sqlProcessor從數據庫讀取數據的自定義項目閱讀器

使用ItemReaderAdapter
來自Javadoc:
Invokes a custom method on a delegate plain old Java object which itself provides an item.

<bean id="itemReader" class="org.springframework.batch.item.adapter.ItemReaderAdapter">
    <property name="targetObject" ref="myClassDao" />
    <property name="targetMethod" value="list" />
    <property name="arguments">
      <list>
        <!-- add arguments list -->
      </list>
    </property>
</bean>

<bean id="myClassDao" class="path.to.MyClassDAO" /

如果您有特殊條件,參數和其他需求,您可以創建自己的ItemReader,但您可以擴展ItemReaderAdapter以重用DAO並節省時間。

您只需要實現ItemReader接口。 例如:

public MyReader implements ItemReader<YourClass> {


  @Override
  public YourClass read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException {

    // Implement your read logic, return null when no more items

  }
}

這個簡單的類將返回您的數據,並將在檢索到所有查詢數據時停止讀取,

我希望它能幫助你或其他用戶:)

如果您已有一個列表,那么您只需創建一個IteratorItemReader實例。

List<MyClass> myClassList = myClassDao.list(...)
ItemReader reader = new IteratorItemReader(myClassList);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM