[SPRING] 4. JPA-2
1. CRUD
CRUD란 정보관리의 기본 기능을 뜻하며 생성(Create), 조회(Read), 변경(Update), 삭제(Delete) 이다.
2. Service
※ 객체 지향 프로그래밍 (스프링 구조) - 상세내용은 추후 글로 정리 예정입니다
1. Controller
- 클라이언트의 요청을 받음.
- 요청에 대한 처리는 Service로 요청.
- 클라이언트에 응답.
2. Service
- Controller로부터 받은 클라인트 요청 처리.
- DB 정보가 필요할 시 Repository로 요청.
3. Repository
- DB 관리 (연결 및 해제, 자원관리).
- DB CRUD 작업 처리.
※ Controller와 Service를 구분하는 이유
중복되는 코드가 생기기 때문이다.
비즈니스 로직 코드가 컨트롤러에 구현되어 있는 경우 다른 컨트롤러의 핸들러 메소드에서 똑같은 로직 코드를 구현해야 하므로 중복코드가 발생하고 재사용성이 줄어든다.
즉, Controller와 Service를 구분하면 확장성과 재사용성이 좋아지고 중복코드를 제거할 수 있다.
Update의 경우 클라이언트 요청을 Controller에서 데이터 관리를해주는 Repository에 전달을 해야하므로 Service를 활용해야한다.
※소스 작업 편의를 위해 클래스 및 변수명 변경하였습니다
- Person ▶ Writer
- address ▶ Book
3. 특정코드 찾기
- 39번라인만 입력시에는 아이디 값이 1인값이 없을 때 대체할 코드가 없어 에러가난다.
- 해결하기 위해서 기존코드 뒤에 orElseThrow() : id값이 1인경우가 없을 시 출력식
( ) -> new NullPointerException("값이 없을시 출력될 문구")
4. 서비스 클래스 만들기
4_1. Writer 클래스에 update 메소드 추가
4_2. src ▶ main ▶ java ▶ com.sparta.week02_1 ▶ service 패키지 생성
4_3. WriterService.java 코드작성
- @Service : 서비스클래스임을 명시
- Read, Update등으로 데이터베이스에 요청할시에 Repository를 통해 요청해야 하므로 생성자를 통하여 Service 클래스를 생성시 반드시 Repository를 추가하도록 스프링에게 요청.
- @Transactional : SQL쿼리를 사용해야한다는 Annovation
- update 메서드의 경우 변경할 id가 존재하지 않을시에 대체해줄 식이 들어가지 않으면 에러가 난다.
4_4. WriterService.java 코드작성
-끗-