본문 바로가기
웹개발/Springboot

DB 데이터 활용하기 - delete, update

by HoPpangg 2021. 6. 30.
SMALL

이번에는 Delete를 해봅니다.

Delete는 당연히 DeleteMapping을 사용해줍니다.

삭제할 데이터의 id를 주소를 통해서 받으면 @PathVariable 을 이용해서 매개변수로 활용해줍니다.

userRepository에 정의되어있는 deleteById로 데이터를 삭제해줍니다.

postman에서 send 해보면

잘 삭제된 것을 볼 수 있습니다.

 

수정은 수정할 데이터를 request해야하므로 PutMapping을 사용해줍니다.

PathVariable을 이용해서 주소에서 요청한 id 값을 받아주고 요청받은 데이터들은 User 오브젝트에 넣어줍니다.

보통 userid는 수정하지 않기 때문에 email과 password 값만 받아줄건데,

이렇게 되면 user에는 id와 userid 값은 null이 됩니다.

userRepository에 있는 save() 메서드를 사용해서 수정을 합니다.

save() 메서드는 전달받는 오브젝트에 id값이 있다면 update를, 없다면 insert를 해주는 메서드 입니다.

따라서 updateOne의 매개변수로 있는 user를 그대로 save() 메서드에 넣어주게 되면  id값이 null이기 때문에 insert를 합니다.

따라서 id 값을 넣어주어야 하는데,

이렇게 setId로 id 값을 넣고 user를 save()에 넣어주면 userid값은 null이기 때문에 기존에 있던 값이 사라집니다. 

따라서 id로 select를 통해서 데이터를 다 가져온 후 그 데이터를 수정해서 save()에 넣는 방식으로 해야합니다.

postman으로 put 하고 정상적으로 작동이 됐다면, 

Get을 통해 확인해봅니다.

제대로 수정된 것을 볼 수 있습니다.

728x90
LIST

댓글