Skip to content

Commit 80a3959

Browse files
cosmetic changes
1 parent 391b700 commit 80a3959

File tree

4 files changed

+42
-11
lines changed

4 files changed

+42
-11
lines changed

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,14 @@ This repository serves as a Spring Batch Starter Kit, specifically tailored for
2020

2121
### 主な特徴
2222
- **スケルトンバッチ**: 業務ロジックを追加するだけでバッチを簡単に構築する事が可能です。
23-
- **DB to CSVバッチ**: MySQLからCSVファイルへデータを出力します。where句を実行時引数で指定する事が可能です。
24-
- **CSV to DBバッチ**: CSVデータをMySQLにバルクで登録します。
23+
- **DB to CSVバッチ**: MySQLデータをCSVファイルに簡単に出力できます。実行時引数を利用した動的なWHERE句や柔軟な出力設定に対応しています。
24+
- **CSV to DBバッチ**: CSVデータをMySQLに効率的に取り込みます。バルク処理機能を備えています。
25+
26+
### Reusability / 再利用性
27+
28+
This kit is highly adaptable. By simply updating the database connection settings and modifying the CSV column definitions to match your specific business needs, you can immediately start using it for your projects.
29+
30+
DB接続設定やCSVのカラム定義を業務仕様に合わせて変更するだけで、すぐにプロジェクトで利用できます。シンプルなテンプレートを基に、業務ロジックを追加するだけで、効率的に高機能なバッチ処理を構築できます。
2531

2632
---
2733

dbAndCsvBatch/src/main/java/com/example/batch/repository/MemberRepository.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
public class MemberRepository {
1616
private final DSLContext dslContext;
1717

18-
public List<MemberRecord> findMembersByTypeAndDeleteFlag(List<Byte> types, Byte deleteFlag) {
18+
public List<MemberRecord> selectByTypeAndDeleteFlag(List<Byte> types, Byte deleteFlag) {
1919
return dslContext
2020
.selectFrom(MEMBER)
2121
.where(MEMBER.DELETE_FLAG.eq(deleteFlag))
@@ -24,6 +24,33 @@ public List<MemberRecord> findMembersByTypeAndDeleteFlag(List<Byte> types, Byte
2424
.fetchInto(MemberRecord.class);
2525
}
2626

27+
public void insert(MemberRecord member) {
28+
dslContext
29+
.insertInto(MEMBER)
30+
.set(MEMBER.NAME, member.getName())
31+
.set(MEMBER.EMAIL, member.getEmail())
32+
.set(MEMBER.PHONE, member.getPhone())
33+
.set(MEMBER.ADDRESS, member.getAddress())
34+
.set(MEMBER.TYPE, member.getType())
35+
.execute();
36+
}
37+
38+
public void update(MemberRecord member) {
39+
dslContext
40+
.update(MEMBER)
41+
.set(MEMBER.NAME, member.getName())
42+
.set(MEMBER.EMAIL, member.getEmail())
43+
.set(MEMBER.PHONE, member.getPhone())
44+
.set(MEMBER.ADDRESS, member.getAddress())
45+
.set(MEMBER.TYPE, member.getType())
46+
.where(MEMBER.ID.eq(member.getId()))
47+
.execute();
48+
}
49+
50+
public void delete(Integer id) {
51+
dslContext.deleteFrom(MEMBER).where(MEMBER.ID.eq(id)).execute();
52+
}
53+
2754
public void bulkInsert(List<MemberRecord> memberRecords) {
2855
var insertStep =
2956
dslContext.insertInto(

dbAndCsvBatch/src/main/java/com/example/batch/service/DbToCsvService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ public class DbToCsvService {
2424
*/
2525
public BatchResult execute(List<Byte> types, String filePath) throws Exception {
2626

27-
byte deleteFlag = 0;
27+
final byte deleteFlag = 0;
2828
List<MemberRecord> memberEntityList =
29-
memberRepository.findMembersByTypeAndDeleteFlag(types, deleteFlag);
29+
memberRepository.selectByTypeAndDeleteFlag(types, deleteFlag);
3030

3131
if (!memberEntityList.isEmpty()) {
3232
writeCsv(memberEntityList, filePath);

dbAndCsvBatch/src/test/java/com/example/batch/service/DbToCsvServiceTest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,12 @@ void testExecute_Success() throws Exception {
5858
"789 Pine St, Village, Country",
5959
(byte) 0));
6060

61-
when(memberRepository.findMembersByTypeAndDeleteFlag(anyList(), eq((byte) 0)))
62-
.thenReturn(mockData);
61+
when(memberRepository.selectByTypeAndDeleteFlag(anyList(), eq((byte) 0))).thenReturn(mockData);
6362

6463
BatchResult result = dbToCsvService.execute(List.of((byte) 1, (byte) 2, (byte) 3), filePath);
6564

6665
assertThat(result).isEqualTo(BatchResult.SUCCESS);
67-
verify(memberRepository, times(1)).findMembersByTypeAndDeleteFlag(anyList(), eq((byte) 0));
66+
verify(memberRepository, times(1)).selectByTypeAndDeleteFlag(anyList(), eq((byte) 0));
6867

6968
File csvFile = new File("members.csv");
7069
assertThat(csvFile.exists()).isTrue();
@@ -75,13 +74,12 @@ void testExecute_Success() throws Exception {
7574

7675
@Test
7776
void testExecute_NoData() throws Exception {
78-
when(memberRepository.findMembersByTypeAndDeleteFlag(anyList(), eq((byte) 0)))
79-
.thenReturn(List.of());
77+
when(memberRepository.selectByTypeAndDeleteFlag(anyList(), eq((byte) 0))).thenReturn(List.of());
8078

8179
BatchResult result = dbToCsvService.execute(List.of((byte) 1, (byte) 2, (byte) 3), filePath);
8280

8381
assertThat(result).isEqualTo(BatchResult.NODATA);
84-
verify(memberRepository, times(1)).findMembersByTypeAndDeleteFlag(anyList(), eq((byte) 0));
82+
verify(memberRepository, times(1)).selectByTypeAndDeleteFlag(anyList(), eq((byte) 0));
8583
}
8684

8785
private MemberRecord createMockMember(

0 commit comments

Comments
 (0)