Spring 입문주차/1주차

16. Update, Delete 구현하기

note994 2024. 8. 14. 15:22

Update 구현

 

MemoController 클래스에 아래 코드 추가

@PutMapping("/memos/{id}")
public Long updateMemo(@PathVariable Long id, @RequestBody MemoRequestDto requestDto) {
    // 해당 메모가 DB에 존재하는지 확인
    if(memoList.containsKey(id)) {
				// 해당 메모 가져오기
        Memo memo = memoList.get(id);

        // memo 수정
        memo.update(requestDto);
        return memo.getId();
    } else {
        throw new IllegalArgumentException("선택한 메모는 존재하지 않습니다.");
    }
}

Memo memo = memoList.get(id) 이것은 얕은 복사로서 memo 객체와 memoList.get(id)의 객체는 같은 주소를 바라보고 있다. 즉 memo 객체를 이용해 내용을 수정하면 memoList 안에 있는 그 객체도 영향을 받는다는 뜻이다.

 

Memo 클래스에 update 메서드 추가

public void update(MemoRequestDto requestDto) {
    this.username = requestDto.getUsername();
    this.contents = requestDto.getContents();
}

Delete 구현

@DeleteMapping("/memos/{id}")
public Long deleteMemo(@PathVariable Long id) {
    // 해당 메모가 DB에 존재하는지 확인
    if(memoList.containsKey(id)) {
        // 해당 메모 삭제하기
        memoList.remove(id);
        return id;
    } else {
        throw new IllegalArgumentException("선택한 메모는 존재하지 않습니다.");
    }
}