@@ -18,19 +18,18 @@ public class DbToCsvService {
18
18
private final MemberRepository memberRepository ;
19
19
20
20
/**
21
- * データベースからデータを取得してCSVに出力する
21
+ * DBのレコードをCSVに出力する
22
22
*
23
23
* <p>Retrieve data from the database and export it to a CSV file.
24
24
*/
25
- public BatchResult execute (List <Byte > types ) throws Exception {
25
+ public BatchResult execute (List <Byte > types , String filePath ) throws Exception {
26
26
27
27
byte deleteFlag = 0 ;
28
28
List <MemberRecord > memberEntityList =
29
29
memberRepository .findMembersByTypeAndDeleteFlag (types , deleteFlag );
30
30
31
31
if (!memberEntityList .isEmpty ()) {
32
- String csvFileName = "members.csv" ;
33
- writeCsv (memberEntityList , csvFileName );
32
+ writeCsv (memberEntityList , filePath );
34
33
} else {
35
34
log .warn ("No data found matching the criteria." );
36
35
return BatchResult .NODATA ;
@@ -39,25 +38,32 @@ public BatchResult execute(List<Byte> types) throws Exception {
39
38
return BatchResult .SUCCESS ;
40
39
}
41
40
42
- private void writeCsv (List <MemberRecord > members , String filePath ) throws IOException {
41
+ private void writeCsv (List <MemberRecord > records , String filePath ) throws IOException {
43
42
try (CSVWriter writer = new CSVWriter (new FileWriter (filePath ))) {
44
- String [] header = {
45
- "id" , "type" , "name" , "email" , "phone" , "address" , "deleteFlag" , "createdAt" , "updatedAt"
46
- };
47
- writer .writeNext (header );
48
-
49
- for (MemberRecord member : members ) {
43
+ writer .writeNext (
44
+ new String [] {
45
+ "id" ,
46
+ "type" ,
47
+ "name" ,
48
+ "email" ,
49
+ "phone" ,
50
+ "address" ,
51
+ "deleteFlag" ,
52
+ "createdAt" ,
53
+ "updatedAt"
54
+ });
55
+ for (MemberRecord record : records ) {
50
56
writer .writeNext (
51
57
new String [] {
52
- String .valueOf (member .getId ()),
53
- String .valueOf (member .getType ()),
54
- member .getName (),
55
- member .getEmail (),
56
- member .getPhone (),
57
- member .getAddress (),
58
- String .valueOf (member .getDeleteFlag ()),
59
- String .valueOf (member .getCreatedAt ()),
60
- String .valueOf (member .getUpdatedAt ())
58
+ String .valueOf (record .getId ()),
59
+ String .valueOf (record .getType ()),
60
+ record .getName (),
61
+ record .getEmail (),
62
+ record .getPhone (),
63
+ record .getAddress (),
64
+ String .valueOf (record .getDeleteFlag ()),
65
+ String .valueOf (record .getCreatedAt ()),
66
+ String .valueOf (record .getUpdatedAt ())
61
67
});
62
68
}
63
69
}
0 commit comments