質問編集履歴
7
test
CHANGED
File without changes
|
test
CHANGED
@@ -228,7 +228,7 @@
|
|
228
228
|
|
229
229
|
### 試したこと
|
230
230
|
|
231
|
-
使用した教材に記載されてい
|
231
|
+
下記のソース(使用した教材に記載されていたMapperインタフェースを利用しないソース)で実行するとDBへ反映できました。
|
232
232
|
|
233
233
|
(設定ファイルなどは教材にあったものをそのまま使用しています)
|
234
234
|
|
6
test
CHANGED
File without changes
|
test
CHANGED
@@ -234,6 +234,10 @@
|
|
234
234
|
|
235
235
|
|
236
236
|
|
237
|
+
■PointAddTasklet.java
|
238
|
+
|
239
|
+
|
240
|
+
|
237
241
|
```
|
238
242
|
|
239
243
|
package com.example.batch.tutorial.dbaccess.tasklet;
|
5
test
CHANGED
File without changes
|
test
CHANGED
@@ -232,6 +232,170 @@
|
|
232
232
|
|
233
233
|
(設定ファイルなどは教材にあったものをそのまま使用しています)
|
234
234
|
|
235
|
+
|
236
|
+
|
237
|
+
```
|
238
|
+
|
239
|
+
package com.example.batch.tutorial.dbaccess.tasklet;
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
import org.springframework.batch.core.StepContribution;
|
244
|
+
|
245
|
+
import org.springframework.batch.core.scope.context.ChunkContext;
|
246
|
+
|
247
|
+
import org.springframework.batch.core.step.tasklet.Tasklet;
|
248
|
+
|
249
|
+
import org.springframework.batch.item.ItemStreamReader;
|
250
|
+
|
251
|
+
import org.springframework.batch.item.ItemWriter;
|
252
|
+
|
253
|
+
import org.springframework.batch.repeat.RepeatStatus;
|
254
|
+
|
255
|
+
import org.springframework.stereotype.Component;
|
256
|
+
|
257
|
+
import com.example.batch.tutorial.common.dto.MemberInfoDto;
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
import javax.inject.Inject;
|
262
|
+
|
263
|
+
import java.util.ArrayList;
|
264
|
+
|
265
|
+
import java.util.List;
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
@Component // (1)
|
270
|
+
|
271
|
+
public class PointAddTasklet implements Tasklet {
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
private static final String TARGET_STATUS = "1"; // (2)
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
private static final String INITIAL_STATUS = "0"; // (3)
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
private static final String GOLD_MEMBER = "G"; // (4)
|
284
|
+
|
285
|
+
|
286
|
+
|
287
|
+
private static final String NORMAL_MEMBER = "N"; // (5)
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
private static final int MAX_POINT = 1000000; // (6)
|
292
|
+
|
293
|
+
|
294
|
+
|
295
|
+
private static final int CHUNK_SIZE = 10; // (7)
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
@Inject // (8)
|
300
|
+
|
301
|
+
ItemStreamReader<MemberInfoDto> reader; // (9)
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
@Inject // (8)
|
306
|
+
|
307
|
+
ItemWriter<MemberInfoDto> writer; // (10)
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
@Override
|
312
|
+
|
313
|
+
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { // (11)
|
314
|
+
|
315
|
+
MemberInfoDto item = null;
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
List<MemberInfoDto> items = new ArrayList<>(CHUNK_SIZE); // (12)
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
try {
|
324
|
+
|
325
|
+
reader.open(chunkContext.getStepContext().getStepExecution().getExecutionContext()); // (13)
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
while ((item = reader.read()) != null) { // (14)
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
if (TARGET_STATUS.equals(item.getStatus())) {
|
334
|
+
|
335
|
+
if (GOLD_MEMBER.equals(item.getType())) {
|
336
|
+
|
337
|
+
item.setPoint(item.getPoint() + 100);
|
338
|
+
|
339
|
+
} else if (NORMAL_MEMBER.equals(item.getType())) {
|
340
|
+
|
341
|
+
item.setPoint(item.getPoint() + 10);
|
342
|
+
|
343
|
+
}
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
if (item.getPoint() > MAX_POINT) {
|
348
|
+
|
349
|
+
item.setPoint(MAX_POINT);
|
350
|
+
|
351
|
+
}
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
item.setStatus(INITIAL_STATUS);
|
356
|
+
|
357
|
+
}
|
358
|
+
|
359
|
+
|
360
|
+
|
361
|
+
items.add(item);
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
if (items.size() == CHUNK_SIZE) { // (15)
|
366
|
+
|
367
|
+
writer.write(items); // (16)
|
368
|
+
|
369
|
+
items.clear();
|
370
|
+
|
371
|
+
}
|
372
|
+
|
373
|
+
}
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
writer.write(items); // (17)
|
378
|
+
|
379
|
+
} finally {
|
380
|
+
|
381
|
+
reader.close(); // (18)
|
382
|
+
|
383
|
+
}
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
return RepeatStatus.FINISHED; // (19)
|
388
|
+
|
389
|
+
}
|
390
|
+
|
391
|
+
}
|
392
|
+
|
393
|
+
|
394
|
+
|
395
|
+
```
|
396
|
+
|
397
|
+
|
398
|
+
|
235
399
|
【使用した教材】
|
236
400
|
|
237
401
|
・タスクレットモデルでの実装
|
4
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
Macchinetta Batch Framework
|
3
|
+
Spring Batch(Macchinetta Batch Framework)でデータベースアクセスをしてデータ入出力を行うジョブを、Mapperインタフェースを用いて作成したい。
|
6
4
|
|
7
5
|
|
8
6
|
|
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -242,8 +242,8 @@
|
|
242
242
|
|
243
243
|
|
244
244
|
|
245
|
-
### 補足情報
|
245
|
+
### 補足情報
|
246
246
|
|
247
247
|
お手数をおかけしますが、ご教授頂けますと幸いです。
|
248
248
|
|
249
|
-
説明
|
249
|
+
説明不足の点がございましたら追記させていただきます。
|
2
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,15 +2,11 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
Macchinetta Batch Framework(Spring Batch)で
|
5
|
+
Macchinetta Batch Framework(Spring Batch)でデータベースアクセスをしてデータ入出力を行うジョブを、Mapperインタフェースを用いて作成したい。
|
6
|
-
|
7
|
-
|
6
|
+
|
8
|
-
|
9
|
-
|
7
|
+
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
|
13
|
-
【
|
9
|
+
【使用した教材】
|
14
10
|
|
15
11
|
・タスクレットモデルでの実装
|
16
12
|
|
@@ -234,11 +230,11 @@
|
|
234
230
|
|
235
231
|
### 試したこと
|
236
232
|
|
237
|
-
教材に記載されている、Mapperインタフェースを利用しないパターンで実行するとDBへ反映できました。
|
233
|
+
使用した教材に記載されている、Mapperインタフェースを利用しないパターンで実行するとDBへ反映できました。
|
238
234
|
|
239
235
|
(設定ファイルなどは教材にあったものをそのまま使用しています)
|
240
236
|
|
241
|
-
【教材】
|
237
|
+
【使用した教材】
|
242
238
|
|
243
239
|
・タスクレットモデルでの実装
|
244
240
|
|
1
書式の改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
【Spring Batch】データ入出力ジョブの作成
|
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
Macchinetta Batch Framework(SpringBatch)で
|
5
|
+
Macchinetta Batch Framework(Spring Batch)で
|
6
6
|
|
7
7
|
データベースアクセスでデータ入出力を行うジョブを
|
8
8
|
|
@@ -32,6 +32,10 @@
|
|
32
32
|
|
33
33
|
|
34
34
|
|
35
|
+
■PointAddTasklet.java
|
36
|
+
|
37
|
+
|
38
|
+
|
35
39
|
```ここに言語名を入力
|
36
40
|
|
37
41
|
package com.example.batch.tutorial.dbaccess.tasklet;
|
@@ -44,7 +48,7 @@
|
|
44
48
|
|
45
49
|
import org.apache.ibatis.cursor.Cursor;
|
46
50
|
|
47
|
-
import org.springframework.batch.core.StepContribution;
|
51
|
+
import org.springframework.batch.core.StepContribution;.
|
48
52
|
|
49
53
|
import org.springframework.batch.core.scope.context.ChunkContext;
|
50
54
|
|
@@ -164,6 +168,10 @@
|
|
164
168
|
|
165
169
|
```
|
166
170
|
|
171
|
+
■MemberInfoRepository.xml
|
172
|
+
|
173
|
+
|
174
|
+
|
167
175
|
```
|
168
176
|
|
169
177
|
<?xml version="1.0" encoding="UTF-8"?>
|