From ae26ab0c53b0827b419ead648e71dba1612aa0ff Mon Sep 17 00:00:00 2001 From: tldud123 Date: Wed, 13 May 2026 16:44:43 +0900 Subject: [PATCH 1/6] Create Transaction.java --- .../com/example/demo/entity/Transaction.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 demo/src/main/java/com/example/demo/entity/Transaction.java diff --git a/demo/src/main/java/com/example/demo/entity/Transaction.java b/demo/src/main/java/com/example/demo/entity/Transaction.java new file mode 100644 index 0000000..b4f2ee6 --- /dev/null +++ b/demo/src/main/java/com/example/demo/entity/Transaction.java @@ -0,0 +1,27 @@ +package com.example.demo.entity; + +import jakarta.persistence.*; +import lombok.*; + +@Entity +@Getter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class Transaction { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String gu; + private String dong; + private String road; + private String houseType; + private Double totalArea; + private Double landArea; + private Integer buildYear; + private Integer tradeYear; + private Integer tradeMonth; + private Integer tradeDay; + private Long price; +} From 5d92eddd0c9e569062b5f3579249df44377f7488 Mon Sep 17 00:00:00 2001 From: tldud123 Date: Wed, 13 May 2026 16:45:27 +0900 Subject: [PATCH 2/6] Create TransactionRepository.java --- .../example/demo/repository/TransactionRepository.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 demo/src/main/java/com/example/demo/repository/TransactionRepository.java diff --git a/demo/src/main/java/com/example/demo/repository/TransactionRepository.java b/demo/src/main/java/com/example/demo/repository/TransactionRepository.java new file mode 100644 index 0000000..ecabe70 --- /dev/null +++ b/demo/src/main/java/com/example/demo/repository/TransactionRepository.java @@ -0,0 +1,9 @@ +package com.example.demo.repository; + +import com.example.demo.entity.Transaction; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface TransactionRepository extends JpaRepository { +} From af4c4164d3d5c03424699b6234ce2d44d3d3e3bf Mon Sep 17 00:00:00 2001 From: tldud123 Date: Wed, 13 May 2026 16:46:05 +0900 Subject: [PATCH 3/6] Create CsvImportService.java --- .../demo/service/CsvImportService.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 demo/src/main/java/com/example/demo/service/CsvImportService.java diff --git a/demo/src/main/java/com/example/demo/service/CsvImportService.java b/demo/src/main/java/com/example/demo/service/CsvImportService.java new file mode 100644 index 0000000..f3d2bb6 --- /dev/null +++ b/demo/src/main/java/com/example/demo/service/CsvImportService.java @@ -0,0 +1,44 @@ +package com.example.demo.service; + +import com.example.demo.entity.Transaction; +import com.example.demo.repository.TransactionRepository; +import jakarta.annotation.PostConstruct; +import lombok.RequiredArgsConstructor; +import org.springframework.core.io.ClassPathResource; +import org.springframework.stereotype.Service; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; + +@Service +@RequiredArgsConstructor +public class CsvImportService { + private final TransactionRepository transactionRepository; + + @PostConstruct + public void init() { + try { + ClassPathResource resource = new ClassPathResource("transactions.csv"); + BufferedReader reader = new BufferedReader( + new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8) + ); + reader.readLine(); // 헤더 스킵 + String line; + while ((line = reader.readLine()) != null) { + String[] s = line.split(","); + Transaction t = Transaction.builder() + .gu(s[0]).dong(s[1]).road(s[2]).houseType(s[3]) + .totalArea(Double.parseDouble(s[4])) + .landArea(Double.parseDouble(s[5])) + .buildYear(Integer.parseInt(s[6])) + .tradeYear(Integer.parseInt(s[7])) + .tradeMonth(Integer.parseInt(s[8])) + .tradeDay(Integer.parseInt(s[9])) + .price(Long.parseLong(s[10])) + .build(); + transactionRepository.save(t); + } + System.out.println("✅ DB 적재 완료!"); + } catch (Exception e) { e.printStackTrace(); } + } +} From 5ea3c22ed268807dc5dac17ed5739a28975d8f94 Mon Sep 17 00:00:00 2001 From: tldud123 Date: Wed, 13 May 2026 16:46:52 +0900 Subject: [PATCH 4/6] Create transactions.csv --- demo/src/main/resources/transactions.csv | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 demo/src/main/resources/transactions.csv diff --git a/demo/src/main/resources/transactions.csv b/demo/src/main/resources/transactions.csv new file mode 100644 index 0000000..de1d526 --- /dev/null +++ b/demo/src/main/resources/transactions.csv @@ -0,0 +1,3 @@ +gu,dong,road,houseType,totalArea,landArea,buildYear,tradeYear,tradeMonth,tradeDay,price +수지구,풍덕천동,수지로,다가구,84,120,2010,2025,5,10,52000 +기흥구,신갈동,신갈로,아파트,59,0,2005,2025,5,11,41000 From ce64b58546d1951e12a705893ca6bfdd2b6d0f18 Mon Sep 17 00:00:00 2001 From: tldud123 Date: Wed, 13 May 2026 16:47:35 +0900 Subject: [PATCH 5/6] Update application.properties --- demo/src/main/resources/application.properties | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demo/src/main/resources/application.properties b/demo/src/main/resources/application.properties index 2109a44..c83eb59 100644 --- a/demo/src/main/resources/application.properties +++ b/demo/src/main/resources/application.properties @@ -1 +1,4 @@ spring.application.name=demo +spring.datasource.url=jdbc:h2:mem:testdb +spring.h2.console.enabled=true +spring.jpa.hibernate.ddl-auto=create From 3b7c223aedfe68a79c7b9dbc32a05671c48095dc Mon Sep 17 00:00:00 2001 From: tldud123 Date: Thu, 14 May 2026 15:58:14 +0900 Subject: [PATCH 6/6] Update CsvImportService.java --- .../main/java/com/example/demo/service/CsvImportService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/src/main/java/com/example/demo/service/CsvImportService.java b/demo/src/main/java/com/example/demo/service/CsvImportService.java index f3d2bb6..8210977 100644 --- a/demo/src/main/java/com/example/demo/service/CsvImportService.java +++ b/demo/src/main/java/com/example/demo/service/CsvImportService.java @@ -22,7 +22,7 @@ public void init() { BufferedReader reader = new BufferedReader( new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8) ); - reader.readLine(); // 헤더 스킵 + reader.readLine(); String line; while ((line = reader.readLine()) != null) { String[] s = line.split(",");