[java, #7] JPA를 활용한 업데이트(update)와 삭제(delete)
0. 목적
데이터를 입력하고, 조회해보는 과정까지 수행했다.
이번에는 기존에 존재하는 데이터를 변경(업데이트)하고, 삭제하는 방법을 알아보자.
1. 업데이트
1.1 목적 및 결과
- 목적: DB에 있는 기존 데이터를 새로운 데이터로 대체하기
- 결과: service 패키지 생성, AircraftService 클래스 생성 및 업데이트 방법 정의
1.2 service 패키지 생성
1.2.1 service 패키지 생성
- 목적: service 영역 생성
- 패키지명: service
- 생성 위치: src > main > java > com.sparata.week02 > service
1.3 service 스크립트 생성
1.3.1 목적 및 생성 위치
- 목적: 업데이트 방법 정의 및 규칙 생성
- 스크립트명: AircraftService
- 생성 위치: src > main > java > com.sparata.week02 > service > AircraftService
1.3.2 코드
1.3.2.1 규칙 생성
// 목적: 업데이트 규칙 생성
@service
public class AircraftService {
// 1. Service 클래스 내에 JPA 포함시키기
// 1.1 JPA 클래스 불러오기
public final AircraftRepository aircraftRepository{
}
// 해석
// -final: 반드시
// -AircraftRepository: AircraftRepository 클래스를 불러와서
// -aircraftRepository: aircraftRepository를 실행해라
// (기본 생성자는 코드가 없더라도 자동 생성됨)
// 1.2 JPA 포함시키기
public aircraftService(AircraftRepository aircraftRepository) {
this.aircraftRepository = aircraftRepository;
}
// 해석
// public aircraftService(AircraftRepository aircraftRepository): AircraftRepository 스크립트에서 aircraftRepository를 불러와 aircraftService 인자로 받는다.
// this.aircraftRepository = aircraftRepository; : 인자로 들어온 aircraftRepository를 class에 정보에 포함시킨다.
// 2. 업데이트 규칙 생성
public String update(Long id, Aircraft aircraft){
Aircraft update_aircraft = aircraftRepository.findById(1L).orElseThrow(
() -> IllegalArgumentException("해당 데이터가 없습니다.")
);
update_aircraft.update(aircraft)
return update_aircraft.getModel()
// 해석
// public String update(Long id, Aircraft aircraft): Long 형식으로 id, Aircraft에서 aircraft를 불러와서 인자로 받는 update 메소드를 선언하며, 그 결과는 존해면 String 형식이다.
// Aircraft update_aircraft = aircraftRepository.findById(1L).orElseThrow(
// () -> IllegalArgumentException("해당 데이터가 없습니다.")
// ); : Aircraft를 불러와 기본생성자 update_aircraft 변수를 선언하고, 해당 변수에 aircraftRepository(JPA)를 사용하여 첫 번째 ID를 찾는다. 만약 첫 번째 데이터가 존재하지 않으면, "해당 데이터가 없다는" 표기를 띄운다.
// update_aircraft.update(aircraft) : 데이터를 업데이트 한다.
// return update_aircraft.getModel(): 모델명을 반환한다.
}
}
1.3.2.2 실행하기
// @ src > main > java > week02application
public static void main(String[] args) {
SpringApplication.run(Week02Application.class, args);
}
@Bean
public CommandLineRunner demo(AircraftRepository repository, AircraftService aircraftService) {
return (args) -> {
// 4. update
Aircraft aircraft = new Aircraft("B777", "Boeing");
aircraftService.update(1L, aircraft);
// 해석
// Aircraft aircraft = new Aircraft("B777", "Boeing");: Aircraft 스크립트를 불러와 aircraft 생성자를 사용하여 Aircraft 클래스에 B777과 Boeing 정보를 할당한다.
// aircraftService.update(1L, aircraft); : 업데이트를 수행한다. DB 첫 번째 데이터와 aircraft를 입력하여 aircraftService 생성자의 업데이트 메소드를 사용한다. DB에 데이터가 입력되었다.
}
};
}
}
2. 삭제
2.1 목적
DB에 존재하는 데이터 삭제
2.2 코드
// @ src > main > java > week02application
- 목적: DB에 있는 기존 데이터를 새로운 데이터로 대체하기
- 결과: service 패키지 생성, AircraftService 클래스 생성 및 업데이트 방법 정의
- 목적: service 영역 생성
- 패키지명: service
- 생성 위치: src > main > java > com.sparata.week02 > service
- 목적: 업데이트 방법 정의 및 규칙 생성
- 스크립트명: AircraftService
- 생성 위치: src > main > java > com.sparata.week02 > service > AircraftService
// 목적: 업데이트 규칙 생성
@service
public class AircraftService {
// 1. Service 클래스 내에 JPA 포함시키기
// 1.1 JPA 클래스 불러오기
public final AircraftRepository aircraftRepository{
}
// 해석
// -final: 반드시
// -AircraftRepository: AircraftRepository 클래스를 불러와서
// -aircraftRepository: aircraftRepository를 실행해라
// (기본 생성자는 코드가 없더라도 자동 생성됨)
// 1.2 JPA 포함시키기
public aircraftService(AircraftRepository aircraftRepository) {
this.aircraftRepository = aircraftRepository;
}
// 해석
// public aircraftService(AircraftRepository aircraftRepository): AircraftRepository 스크립트에서 aircraftRepository를 불러와 aircraftService 인자로 받는다.
// this.aircraftRepository = aircraftRepository; : 인자로 들어온 aircraftRepository를 class에 정보에 포함시킨다.
// 2. 업데이트 규칙 생성
public String update(Long id, Aircraft aircraft){
Aircraft update_aircraft = aircraftRepository.findById(1L).orElseThrow(
() -> IllegalArgumentException("해당 데이터가 없습니다.")
);
update_aircraft.update(aircraft)
return update_aircraft.getModel()
// 해석
// public String update(Long id, Aircraft aircraft): Long 형식으로 id, Aircraft에서 aircraft를 불러와서 인자로 받는 update 메소드를 선언하며, 그 결과는 존해면 String 형식이다.
// Aircraft update_aircraft = aircraftRepository.findById(1L).orElseThrow(
// () -> IllegalArgumentException("해당 데이터가 없습니다.")
// ); : Aircraft를 불러와 기본생성자 update_aircraft 변수를 선언하고, 해당 변수에 aircraftRepository(JPA)를 사용하여 첫 번째 ID를 찾는다. 만약 첫 번째 데이터가 존재하지 않으면, "해당 데이터가 없다는" 표기를 띄운다.
// update_aircraft.update(aircraft) : 데이터를 업데이트 한다.
// return update_aircraft.getModel(): 모델명을 반환한다.
}
}
// @ src > main > java > week02application
public static void main(String[] args) {
SpringApplication.run(Week02Application.class, args);
}
@Bean
public CommandLineRunner demo(AircraftRepository repository, AircraftService aircraftService) {
return (args) -> {
// 4. update
Aircraft aircraft = new Aircraft("B777", "Boeing");
aircraftService.update(1L, aircraft);
// 해석
// Aircraft aircraft = new Aircraft("B777", "Boeing");: Aircraft 스크립트를 불러와 aircraft 생성자를 사용하여 Aircraft 클래스에 B777과 Boeing 정보를 할당한다.
// aircraftService.update(1L, aircraft); : 업데이트를 수행한다. DB 첫 번째 데이터와 aircraft를 입력하여 aircraftService 생성자의 업데이트 메소드를 사용한다. DB에 데이터가 입력되었다.
}
};
}
}
2.1 목적
DB에 존재하는 데이터 삭제
2.2 코드
// @ src > main > java > week02application
public static void main(String[] args) {
SpringApplication.run(Week02Application.class, args);
}
@Bean
public CommandLineRunner demo(AircraftRepository repository, AircraftService aircraftService) {
return (args) -> {
// 5. 삭제하기
repository.deleteAll();
};
}
}
Author And Source
이 문제에 관하여([java, #7] JPA를 활용한 업데이트(update)와 삭제(delete)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@rnjsvlfwp98/java-7-JPA를-활용한-업데이트update와-삭제delete저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)