問題タブ [itemwriter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2111 参照

java - Spring Batch : カスタム バッチ サイズを使用してデータベース テーブルにリストを書き込む

バックグラウンド

私は Spring Batchジョブを持っています:

  1. FlatFileItemReader- ファイルから一度に 1 行ずつ読み取ります
  2. ItemProcesor- 行をファイルから に変換しList<MyObject>List. つまり、ファイル内の各行はList<MyObject>(ファイル内の 1 行が多数の出力行に変換される) に分割されます。
  3. ItemWriterList<MyObject>-をデータベース テーブルに書き込みます。(この 実装を使用して、プロセッサとデリゲートから受け取ったリストを にアンパックしましたJdbcBatchItemWriter)

質問

  • Listポイント 2) で、プロセッサは 100000 個のMyObjectインスタンスを返すことができます。
  • ポイント 3) で、デリゲートは100000 個のオブジェクトJdbcBatchItemWriter全体をデータベースに書き込むことになります。List

私の質問は次のとおりJdbcBatchItemWriterです。カスタムバッチサイズは許可されていません。すべての実際的な目的のために、ステップのバッチサイズ = コミット間隔。これを念頭に置いて、データベースへの書き込みを許可し、構成可能なバッチサイズを許可するSpring Batchで利用可能な別の実装はありますか? そうでない場合、これを達成するために自分でカスタムライターを作成するにはどうすればよいですか?ItemWriter

0 投票する
1 に答える
396 参照

java - FlatFileItemWriter は JobExecution ごとに新しい (存在しない) ファイルに書き込みます

現在、Spring Batch CSV Export に取り組んでいます。Chunk ベースのリーダ、ライタ、プロセッサが使用されます。読み取りと処理は問題なく動作しますが、FlatFileItemWriter は常に出力 CSV ファイルを上書きします。ジョブがファイルが存在するかどうかを確認し、存在する場合は fileName をインクリメントして新しいファイルに書き込みます。

私の現在のコードは次のとおりです。ファイルが存在するかどうかを確認し、ライターが使用する新しい文字列を返すヘルパー クラスです。

私のアイテムライター:

ジョブが実行されるたびに、FileWriter は同じ出力ファイルに書き込みます。OrderFileManager は、ジョブで自動配線されます。そしてライターは OrderFileManager を受け取ります。パラメータとして getEmptyOrderNameString() 。