[英]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.