1. MemoService 클래스 만들기
src > main > java > com.sparta.week03 에 service 패키지를 만듭니다.
해당 패키지 아래에 MemoService.java 파일을 만듭니다.
※ 메소드를 만드는 형식
Public 반환타입 메소드이름(재료) {
}
→ update 메소드를 만들려고할떄, 알아야되는 내용은 업데이트되는 메모의 id , 업데이트 내용이다.
Long id, MemoRequestDto(정보를 물고다니는녀석) requestDto(변수명) 으로 재료를 작성해준다.
* 코드 작성 순서
1. 업데이트가 필요한녀석을 찾는다.
2. 찾은 녀석을 업데이트 해준다.
필요한 녀석을 찾으려면 find를 사용해야되고 그렇기위해서는 Repository가 필요하다.
→ private final MemoRepository memoRepository
# 주의사항 : MemoRepository를 final 없이 그냥 둘 경우 스프링이 MemoService에 적절하게 넣어주질 못한다.
꼭 필요하다고 final 이라고 선언을 해줘야 한다.
또한, final로 선언했을때는 @RequiredArgsConstructor 임포트 해줘야한다. (final로 선언된 녀석이 있으면 같이 생성할때 같이 넣어달라고 알려주는거다.)
마지막으로! 스프링한테 이녀석이 서비스인것도 알려줘야한다. @Service
내가 선언한 업데이트 메소드 밖에서 MemoRepository를 선언하고 그걸 가져와서 Find를 통해 id 를 찾는다.
Memo memo = memoRepository.findById(id).orElseThrow(
() -> new IllegalArgumentException("아이디가 존재하지 않습니다.")
);
무언가를 찾을때는 항상 찾는정보가 없을때에 어떻게할건지 코드를 작성해줘야한다!! 위와 같은형식으로 항상 작성이 되므로 알고넘어가자.
- orElseThrow : 만약에 없으면 뭔가 오류를 발생시키라고 서버에 알려주는거다.
- NullPointException : 가르키는 대상이 없다.
- lllegalArgumentException : 파라미터 대상이 이상하다.
마지막으로 주의할점으로는
@Transactional : 업데이트할때 DB에 꼭 반영되어야한다고 한번더 선언을 해줘야한다.
2. update 기능 만들기 (Memo.java update 메소드 추가하기)
※ 코드 설명
public void : return 되는 타입이 없음을 나타낸다.
'내마음대로만들어보자 > JAVA & Spring' 카테고리의 다른 글
타임라인 프로젝트 만들기 - 클라이언트 설계하기 (0) | 2021.06.27 |
---|---|
타임라인 프로젝트 만들기 - Controller (0) | 2021.06.27 |
타임라인 프로젝트 만들기 - Repository (0) | 2021.06.25 |
타임라인 프로젝트 만들기 (JavaSpring API 설계) (0) | 2021.06.25 |
API - POST, PUT, DELETE (ARC) (0) | 2021.06.23 |