[TIL] 230628 비밀번호 확인해서 수정, 삭제

CountryGirl·2023년 6월 28일
0

TIL

목록 보기
14/80

📌 문제점 & 시도 & 해결

게시글을 CRUD 하는 API 를 만들었다.

Update와 Delete를 할 때는 Create에서 만든 비밀번호가 일치할 경우에만 Update, Delete 가 가능하도록 해야했다.

나는 SQL 문의 이해가 부족해서 어려움을 겪었다....

String sql = "UPDATE post SET title = ?, writer = ?, content = ? WHERE id = ?";
jdbcTemplate.update(sql, requestDto.getTitle(), requestDto.getWriter(), requestDto.getContent(), id);

내가 이해한 sql 은 id 가 같으면 title, writer, content를 UPDATE 해라 였다.
맞는 말이긴하다.
아래 줄에서 각각 ? 에 들어갈 값을 넣어주었어야했다.

하지만 나는 sql 만 보고 WHERE id = ? 부분을 WHERE password = ? 로만 바꾸어주었다......
이렇게 하면 될 줄 알았다.
내가 잘못이해하고 있었고, password 도 확인하기 위해선 password = ? 를 추가해주어야했다.

하지만 나는 if 문을 사용해서 먼저 password를 검사할 수 있도록 하였다.

if (requestDto.getPassword().equals(post.getPassword())) {
	postRepository.update(id, requestDto);
	return id;
}

이렇게 requestDto.getPassword().equals(post.getPassword()) 를 하여 비교하였는데
비밀번호가 같든 틀리든 오류가 났다....
java.lang.IllegalArgumentException: 비밀번호가 틀렸습니다.

뭐가 문제지.. 생각을 했다.

System.out.println("requestDto.getPassword() = " + requestDto.getPassword());
System.out.println("post.getPassword() = " + post.getPassword());

를 보았다.
post.getPassord()가 찍히지 않는 것이었다.
Post Class 를 보니 this.password = requestDto.getPassword(); 이 없어서 나는 오류였다.
this.password = requestDto.getPassword(); 를 추가해주니 Update, Delete 모두 해결할 수 있었다.

profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글