1. 程式人生 > >Spring batch教程 之 配置Step

Spring batch教程 之 配置Step

雖然文字檔案和XML都有自己特定的 ItemWriter, 但資料庫和他們並不一樣。這是因為事務提供了所需的全部功能。 對於檔案來說 ItemWriters 是必要的, 因為如果需要事務特性,他們必須充當這種角色, 跟蹤輸出的 item,並在適當的時間flushing/clearing。使用資料庫時不需要這個功能,因為寫已經包含在事務之中。 使用者可以自己建立實現ItemWriter介面的DAO, 或使用一個處理常見問題的自定義ItemWriter,無論哪種方式,都不會有任何問題。 需要注意的一件事是批量輸出時的效能和錯誤處理能力。 在使用hibernate作為ItemWriter 時是最常見的, 但在使用Jdbc batch 模式時可能也會存在同樣的問題。批處理資料庫輸出沒有任何固有的缺陷,如果我們注意 flush 並且資料沒有錯誤的話。 但是,在寫出時如果發生了什麼錯誤,就可能會引起混亂,因為沒有辦法知道是哪個item引起的異常, 甚至是否某個單獨的 item 負有責任,如下圖所示: