Spring Batchデータを初期化し、データを空にする方法
4259 ワード
この二日間はSpring Batchを使ってデータを導いています。とても強いツールだと思います。インターネットの資料が多くて、連続運行の例が見られませんでした。mkongとspringの公式サイトからコードをいくつか作りましたが、地元で走ってみたらいくつかの問題があります。
1. initialize-databaseは公式のdrop tableを実行して失敗します。
権限問題を報告して、チェックしましたが、spring batchのデータを整理することはできませんでした。
2.ジョブの に しました。
これは の です。 JobParametersに なるパラメータを してこそ、 に ができます。
3.2 に を した に、メインキーのエラーを します。
にコピーしていますので、 をしていません。 する にすべての を する があります。しかし、プログラムは も されています。( してください。 です。) は、 だけイテニアゼ-databaseの を します。
を した てのステップはreaderとwriterが です。そこで でReaderとWriterを いて をします。なお、Listenerを く があります。そうでないとずっと し けます。これはカウンターを すためのものです。
jobの
1. initialize-databaseは公式のdrop tableを実行して失敗します。
権限問題を報告して、チェックしましたが、spring batchのデータを整理することはできませんでした。
DROP TABLE BATCH_STEP_EXECUTION_CONTEXT ;
DROP TABLE BATCH_JOB_EXECUTION_CONTEXT ;
DROP TABLE BATCH_STEP_EXECUTION ;
DROP TABLE BATCH_JOB_EXECUTION_PARAMS ;
DROP TABLE BATCH_JOB_EXECUTION ;
DROP TABLE BATCH_JOB_INSTANCE ;
DROP TABLE BATCH_STEP_EXECUTION_SEQ ;
DROP TABLE BATCH_JOB_EXECUTION_SEQ ;
DROP TABLE BATCH_JOB_SEQ ;
実は何回も実行していますが、この表はdropを使わないので、これを削除して、由
はローカルスクリプトの を び します。2.ジョブの に しました。
これは の です。 JobParametersに なるパラメータを してこそ、 に ができます。
HashMap parameters = new HashMap();
parameters.put("currentTime", new JobParameter(System.currentTimeMillis()));
JobExecution execution = jobLauncher.run(job, new JobParameters(parameters));
は の を えて、 しました。3.2 に を した に、メインキーのエラーを します。
にコピーしていますので、 をしていません。 する にすべての を する があります。しかし、プログラムは も されています。( してください。 です。) は、 だけイテニアゼ-databaseの を します。
を した てのステップはreaderとwriterが です。そこで でReaderとWriterを いて をします。なお、Listenerを く があります。そうでないとずっと し けます。これはカウンターを すためのものです。
jobの
readerの
writerの
listenerの
readerのコードpublic class InitReader extends ItemReaderAdapter
writerのコードpublic class InitWriter extends ItemWriterAdapter
listenerのコードpublic class InitResettingListener extends StepExecutionListenerSupport implements InitializingBean {
private InitReader reader;
public ExitStatus afterStep(StepExecution stepExecution) {
this.reader.resetCounter();
return null;
}
public void setReader(InitReader reader) {
this.reader = reader;
}
public void afterPropertiesSet() throws Exception {
Assert.notNull(this.reader, "The 'reader' must be set.");
}
}
やった!