質問編集履歴

7

2020/10/17 06:12

投稿

emily_
emily_

スコア0

test CHANGED
File without changes
test CHANGED
@@ -228,7 +228,7 @@
228
228
 
229
229
  ### 試したこと
230
230
 
231
- 使用した教材に記載されている、Mapperインタフェースを利用しないパタで実行するとDBへ反映できました。
231
+ 下記のソース(使用した教材に記載されていMapperインタフェースを利用しないス)で実行するとDBへ反映できました。
232
232
 
233
233
  (設定ファイルなどは教材にあったものをそのまま使用しています)
234
234
 

6

2020/10/17 06:12

投稿

emily_
emily_

スコア0

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

2020/10/17 06:10

投稿

emily_
emily_

スコア0

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

2020/10/17 06:10

投稿

emily_
emily_

スコア0

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
-
4
-
5
- Macchinetta Batch Framework(Spring Batch)でデータベースアクセスをしてデータ入出力を行うジョブを、Mapperインタフェースを用いて作成したい。
3
+ Spring Batch(Macchinetta Batch Frameworkでデータベースアクセスをしてデータ入出力を行うジョブを、Mapperインタフェースを用いて作成したい。
6
4
 
7
5
 
8
6
 

3

2020/10/17 06:07

投稿

emily_
emily_

スコア0

test CHANGED
File without changes
test CHANGED
@@ -242,8 +242,8 @@
242
242
 
243
243
 
244
244
 
245
- ### 補足情報(FW/ツールのバージョンなど)
245
+ ### 補足情報
246
246
 
247
247
  お手数をおかけしますが、ご教授頂けますと幸いです。
248
248
 
249
- 説明の過不足などございましたら追記させていただきます。
249
+ 説明不足の点がございましたら追記させていただきます。

2

2020/10/16 10:23

投稿

emily_
emily_

スコア0

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
- Mapperインタフェースを用いて作成したい。
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

書式の改善

2020/10/16 09:56

投稿

emily_
emily_

スコア0

test CHANGED
@@ -1 +1 @@
1
- Mapperインタフェースを用いたデータ入出力を行うジョブの作成(Spring Batch)
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"?>