diff --git a/README.md b/README.md
index b187053..32340a2 100644
--- a/README.md
+++ b/README.md
@@ -26,9 +26,3 @@ docker compose up -d # detach mode
docker compose -v down # 종료 (-v 옵션 줄 경우 volume 삭제)
```
2. 프로젝트 실행
-
-
-## [JPA_SP CRUD]
-### JPA를 이용하여 SP 호출을 구현한 PoC
-#### 주의 사항
- - resources/procedure.sql 을 별도로 실행하여 SP DB에 저장해야 정상작동
diff --git a/poc/.idea/compiler.xml b/poc/.idea/compiler.xml
index e0c09ba..aff84ef 100644
--- a/poc/.idea/compiler.xml
+++ b/poc/.idea/compiler.xml
@@ -8,8 +8,7 @@
-
-
+
diff --git a/poc/.idea/dataSources.xml b/poc/.idea/dataSources.xml
new file mode 100644
index 0000000..44552af
--- /dev/null
+++ b/poc/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ mariadb
+ true
+ org.mariadb.jdbc.Driver
+ jdbc:mariadb://localhost:3307
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/poc/.idea/gradle.xml b/poc/.idea/gradle.xml
index 4947778..3e77f94 100644
--- a/poc/.idea/gradle.xml
+++ b/poc/.idea/gradle.xml
@@ -12,6 +12,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/poc/.idea/misc.xml b/poc/.idea/misc.xml
index a03ad2c..26a3d21 100644
--- a/poc/.idea/misc.xml
+++ b/poc/.idea/misc.xml
@@ -3,6 +3,7 @@
+
diff --git a/poc/.idea/modules.xml b/poc/.idea/modules.xml
index 1ba3376..17e3c77 100644
--- a/poc/.idea/modules.xml
+++ b/poc/.idea/modules.xml
@@ -3,6 +3,7 @@
+
diff --git a/poc/.idea/modules/jpa_sp_poc.main.iml b/poc/.idea/modules/jpa_sp_poc.main.iml
new file mode 100644
index 0000000..6ed3e63
--- /dev/null
+++ b/poc/.idea/modules/jpa_sp_poc.main.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/poc/.idea/sqldialects.xml b/poc/.idea/sqldialects.xml
new file mode 100644
index 0000000..5763cca
--- /dev/null
+++ b/poc/.idea/sqldialects.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/poc/api-tester/jpa_sp_tester.http b/poc/api-tester/jpa_sp_tester.http
new file mode 100644
index 0000000..26e7cb1
--- /dev/null
+++ b/poc/api-tester/jpa_sp_tester.http
@@ -0,0 +1,24 @@
+### Create Member
+POST http://localhost:8080/create-member
+Content-Type: application/json
+
+{
+ "name": "Hong Gil Dong",
+ "email": "bpGroup@bpsoft.co.kr",
+ "password": "1234"
+}
+
+### Select All Members
+GET http://localhost:8080/all-members
+
+### Update Member
+POST http://localhost:8080/update-member
+Content-Type: application/json
+
+{
+ "id": 1,
+ "name": "Jang Gil San"
+}
+
+### Delete Member
+POST http://localhost:8080/delete-member?id=1
diff --git a/poc/jpa_sp_poc/build.gradle b/poc/jpa_sp_poc/build.gradle
index 7f7f11e..ca29ab1 100644
--- a/poc/jpa_sp_poc/build.gradle
+++ b/poc/jpa_sp_poc/build.gradle
@@ -4,7 +4,7 @@ plugins {
id 'io.spring.dependency-management' version '1.1.4'
}
-group = 'JPA_SP'
+group = 'com.bpgroup.poc'
version = '0.0.1-SNAPSHOT'
java {
@@ -22,15 +22,23 @@ repositories {
}
dependencies {
- implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
- compileOnly 'org.projectlombok:lombok'
+ testImplementation 'org.springframework.boot:spring-boot-starter-test'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
+ implementation 'org.springframework.boot:spring-boot-starter-validation'
+
+ //jpa
+ implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
+
+ //lombok
+ compileOnly 'org.projectlombok:lombok'
+ annotationProcessor 'org.projectlombok:lombok'
// db
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
- annotationProcessor 'org.projectlombok:lombok'
- testImplementation 'org.springframework.boot:spring-boot-starter-test'
+
+
+
}
tasks.named('test') {
diff --git a/poc/jpa_sp_poc/settings.gradle b/poc/jpa_sp_poc/settings.gradle
index 3338856..20230e7 100644
--- a/poc/jpa_sp_poc/settings.gradle
+++ b/poc/jpa_sp_poc/settings.gradle
@@ -1 +1 @@
-rootProject.name = 'JPA_SP'
+rootProject.name = 'jpa_sp_poc'
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/JpaSpApplication.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/JpaSpApplication.java
index bdc0e6b..dfac919 100644
--- a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/JpaSpApplication.java
+++ b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/JpaSpApplication.java
@@ -5,7 +5,6 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@SpringBootApplication
-@EnableJpaAuditing
public class JpaSpApplication {
public static void main(String[] args) {
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Request/MemberRequest.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Request/MemberRequest.java
deleted file mode 100644
index 051120b..0000000
--- a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Request/MemberRequest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package jpa_sp_poc.jpa_sp.Request;
-
-import lombok.Getter;
-
-@Getter
-public class MemberRequest {
-
- private String name;
- private String email;
- private String password;
-}
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Request/UpdateMemberRequest.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Request/UpdateMemberRequest.java
deleted file mode 100644
index 25040db..0000000
--- a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Request/UpdateMemberRequest.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package jpa_sp_poc.jpa_sp.Request;
-
-import lombok.Getter;
-
-@Getter
-public class UpdateMemberRequest {
-
- private Long id;
- private String name;
-}
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Controller/MainController.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/controller/MainController.java
similarity index 57%
rename from poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Controller/MainController.java
rename to poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/controller/MainController.java
index fb2f947..18c1a26 100644
--- a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Controller/MainController.java
+++ b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/controller/MainController.java
@@ -1,9 +1,9 @@
-package jpa_sp_poc.jpa_sp.Controller;
+package jpa_sp_poc.jpa_sp.controller;
import jpa_sp_poc.jpa_sp.ApiResponse;
-import jpa_sp_poc.jpa_sp.Request.MemberRequest;
-import jpa_sp_poc.jpa_sp.Service.MemberService;
-import jpa_sp_poc.jpa_sp.Request.UpdateMemberRequest;
+import jpa_sp_poc.jpa_sp.request.MemberRequest;
+import jpa_sp_poc.jpa_sp.service.MemberService;
+import jpa_sp_poc.jpa_sp.request.UpdateMemberRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
@@ -13,15 +13,6 @@ public class MainController {
private final MemberService memberService;
- /*
- * CREATE PROCEDURE GetAllMember(
- * )
- * BEGIN
- * SELECT *
- * FROM Member;
- * END
- */
-
@GetMapping("/all-members")
public ApiResponse allMembers() {
try {
@@ -31,18 +22,6 @@ public class MainController {
}
}
- /*
- * CREATE PROCEDURE CreateMember(
- * IN p_name VARCHAR(50),
- * IN p_email VARCHAR(50),
- * IN p_password VARCHAR(50)
- * )
- * BEGIN
- * INSERT INTO Member (Name, Email, Password)
- * VALUES (p_name, p_email, p_password);
- * END
- */
-
@PostMapping("/create-member")
public ApiResponse createMember(@RequestBody MemberRequest request) {
try {
@@ -52,18 +31,6 @@ public class MainController {
}
}
- /*
- CREATE PROCEDURE UpdateMember(
- IN p_id BIGINT,
- IN p_name VARCHAR(50)
- )
- BEGIN
- UPDATE Member
- SET name = p_name
- WHERE id = id;
- END
- */
-
@PostMapping("/update-member")
public ApiResponse updateMember(@RequestBody UpdateMemberRequest request) {
try {
@@ -73,18 +40,6 @@ public class MainController {
}
}
- /*
- * CREATE PROCEDURE DeleteMember(
- * IN p_id LONG
- * )
- * BEGIN
- * DELETE
- * FROM Member
- * WHERE id = p_id ;
- * END
- *
- */
-
@PostMapping("/delete-member")
public ApiResponse deleteMember(@RequestParam Long id) {
try {
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Entity/MemberEntity.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/entity/MemberEntity.java
similarity index 66%
rename from poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Entity/MemberEntity.java
rename to poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/entity/MemberEntity.java
index 8e265e4..39fd37c 100644
--- a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Entity/MemberEntity.java
+++ b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/entity/MemberEntity.java
@@ -1,24 +1,25 @@
-package jpa_sp_poc.jpa_sp.Entity;
+package jpa_sp_poc.jpa_sp.entity;
import jakarta.persistence.*;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
-@NoArgsConstructor
@Entity
@Table(name = "member")
public class MemberEntity {
-
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
+ @Column(name="name", nullable = false)
private String name;
+ @Column(name="email", nullable = false)
private String email;
+ @Column(name="password", nullable = false)
private String password;
}
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Repository/MemberRepository.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/repository/MemberRepository.java
similarity index 88%
rename from poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Repository/MemberRepository.java
rename to poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/repository/MemberRepository.java
index b68257d..99a5e60 100644
--- a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Repository/MemberRepository.java
+++ b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/repository/MemberRepository.java
@@ -1,6 +1,6 @@
-package jpa_sp_poc.jpa_sp.Repository;
+package jpa_sp_poc.jpa_sp.repository;
-import jpa_sp_poc.jpa_sp.Entity.MemberEntity;
+import jpa_sp_poc.jpa_sp.entity.MemberEntity;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.query.Procedure;
import org.springframework.stereotype.Repository;
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/request/MemberRequest.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/request/MemberRequest.java
new file mode 100644
index 0000000..c014155
--- /dev/null
+++ b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/request/MemberRequest.java
@@ -0,0 +1,19 @@
+package jpa_sp_poc.jpa_sp.request;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.ToString;
+
+@Getter
+@ToString
+public class MemberRequest {
+
+ @NotBlank
+ private String name;
+
+ @NotBlank
+ private String email;
+
+ @NotBlank
+ private String password;
+}
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/request/UpdateMemberRequest.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/request/UpdateMemberRequest.java
new file mode 100644
index 0000000..639dcd5
--- /dev/null
+++ b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/request/UpdateMemberRequest.java
@@ -0,0 +1,16 @@
+package jpa_sp_poc.jpa_sp.request;
+
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.ToString;
+
+@Getter
+@ToString
+public class UpdateMemberRequest {
+
+ @NotBlank
+ private Long id;
+
+ @NotBlank
+ private String name;
+}
diff --git a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Service/MemberService.java b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/service/MemberService.java
similarity index 91%
rename from poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Service/MemberService.java
rename to poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/service/MemberService.java
index bab107f..8c8d377 100644
--- a/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/Service/MemberService.java
+++ b/poc/jpa_sp_poc/src/main/java/jpa_sp_poc/jpa_sp/service/MemberService.java
@@ -1,7 +1,7 @@
-package jpa_sp_poc.jpa_sp.Service;
+package jpa_sp_poc.jpa_sp.service;
import jpa_sp_poc.jpa_sp.ApiResponse;
-import jpa_sp_poc.jpa_sp.Repository.MemberRepository;
+import jpa_sp_poc.jpa_sp.repository.MemberRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
diff --git a/poc/jpa_sp_poc/src/main/resources/application.properties b/poc/jpa_sp_poc/src/main/resources/application.properties
deleted file mode 100644
index 287ae06..0000000
--- a/poc/jpa_sp_poc/src/main/resources/application.properties
+++ /dev/null
@@ -1 +0,0 @@
-spring.application.name=jpa_sp_poc
\ No newline at end of file