JPA_SP 수정 및 Test용 Http 파일 추가 #3
This commit is contained in:
parent
213f10d3be
commit
e7a63ffbeb
|
|
@ -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에 저장해야 정상작동
|
||||
|
|
|
|||
|
|
@ -8,8 +8,7 @@
|
|||
<processorPath useClasspath="false">
|
||||
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.32/17d46b3e205515e1e8efd3ee4d57ce8018914163/lombok-1.18.32.jar" />
|
||||
</processorPath>
|
||||
<module name="admin.test" />
|
||||
<module name="admin.main" />
|
||||
<module name="jpa_sp_poc.main" />
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
</component>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="DataSourceManagerImpl" format="xml" multifile-model="true">
|
||||
<data-source source="LOCAL" name="@localhost" uuid="6695722a-641b-4a9a-9b06-50f52a22ce66">
|
||||
<driver-ref>mariadb</driver-ref>
|
||||
<synchronize>true</synchronize>
|
||||
<jdbc-driver>org.mariadb.jdbc.Driver</jdbc-driver>
|
||||
<jdbc-url>jdbc:mariadb://localhost:3307</jdbc-url>
|
||||
<working-dir>$ProjectFileDir$</working-dir>
|
||||
</data-source>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -12,6 +12,15 @@
|
|||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
<GradleProjectSettings>
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$/jpa_sp_poc" />
|
||||
<option name="gradleJvm" value="corretto-19" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$/jpa_sp_poc" />
|
||||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="FrameworkDetectionExcludesConfiguration">
|
||||
<file type="web" url="file://$PROJECT_DIR$/admin" />
|
||||
<file type="web" url="file://$PROJECT_DIR$/jpa_sp_pocs" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/jpa_sp_poc/jpa_sp_poc.iml" filepath="$PROJECT_DIR$/jpa_sp_poc/jpa_sp_poc.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/modules/jpa_sp_poc.main.iml" filepath="$PROJECT_DIR$/.idea/modules/jpa_sp_poc.main.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/poc.iml" filepath="$PROJECT_DIR$/.idea/poc.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="4">
|
||||
<component name="AdditionalModuleElements">
|
||||
<content url="file://$MODULE_DIR$/../../jpa_sp_pocs/build/generated/sources/annotationProcessor/java/main">
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../jpa_sp_pocs/build/generated/sources/annotationProcessor/java/main" isTestSource="false" generated="true" />
|
||||
</content>
|
||||
</component>
|
||||
</module>
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="SqlDialectMappings">
|
||||
<file url="file://$PROJECT_DIR$/jpa_sp_pocs/src/main/resources/procedure.sql" dialect="GenericSQL" />
|
||||
</component>
|
||||
</project>
|
||||
|
|
@ -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
|
||||
|
|
@ -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') {
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
rootProject.name = 'JPA_SP'
|
||||
rootProject.name = 'jpa_sp_poc'
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
package jpa_sp_poc.jpa_sp.Request;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public class UpdateMemberRequest {
|
||||
|
||||
private Long id;
|
||||
private String name;
|
||||
}
|
||||
|
|
@ -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 {
|
||||
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
|
|
@ -1 +0,0 @@
|
|||
spring.application.name=jpa_sp_poc
|
||||
Loading…
Reference in New Issue