[MongoDB/SpringBoot] 데이터 삭제하기 (Delete) , @DeleteMapping 사용해보기

Glen(OH TaekJoo)·2023년 11월 20일
0

Study

목록 보기
47/53
post-thumbnail

관련포스팅 ↓

mongoDB 설정 / 데이터 넣기 (Create)

MongoDB 데이터 가져오기 (Read)

MongoDB 데이터 수정하기 (Update)

현재 위치→MongoDB 데이터 삭제하기 / DeleteMapping 사용해보기 (Delete)

이번에는 데이터를 삭제하는 작업을 추가하였다.
GetMapping 방식으로 삭제를 진행하고 , @DeleteMapping 방식으로 수정을 하여 사용해봤다.

@GetMapping Delete

RestController

@GetMapping("/{id}/delete")
    public String Delete(@PathVariable String id){
        this.mongService.delete(id);
        return id+"번이 삭제되었습니다";

    }

PathVariable 로 id 값을 받은 후 해당 아이디값을 서비스쪽에 삭제메서드를 만들어 넘겨주었다. 삭제가 되면 해당 아이디값이 삭제되었다는 문구를 반환하도록 작성했다.

Service

public void delete(String id){
        this.mongoRepo.delete(this.mongoRepo.findById(id).get());
    }

서비스에선 넘겨받은 id 값으로 데이터를 가져와 레포지토리 delete 메서드 안에 넣어
삭제를 하였다.

결과값

url 로 넣은 4번의 데이터가 삭제되었다는 문구가 화면에 나타났다.

DB 에도 4번의 데이터가 삭제된 것을 확인 하였다.

@DeleteMapping Delete

@GetMapping > @DeleteMapping 으로 삭제메소드 수정해보기.

이전 모든 작업들은 삭제를 Get방식 으로만 진행하여 DeleteMapping 을 써보진 않았다.
이번에 회사소스에서 DeleteMapping 을 보고 알게되어 DeleteMapping 으로도 사용을 해보았다.

어노테이션 이름만 변경했을 경우 오류.

어노테이션의 이름만 변경했을때 브라우져로 url을 찍었더니 Get방식이 아니라는 오류가 나타났다. 알아보니 HTTP Request를 Get방식이 아닌 Delete 방식으로 보냈을 때에만 정상적으로 작동한다고 하여 포스트맨에서 Delete 방식으로 요청을 보냈다.

포스트맨에서 DELETE 방식으로 요청을 보내니 에러없이 정상적으로 수행하였다.

DB 에서도 요청보낸 3번 데이터가 삭제가 된 것을 확인 했다.

템플릿에서 Delete 방식으로 요청을 보내는 방법은

<form id="delete_form" action="/${mongo.id}/delete" method="post">
    <input type="hidden" name="_method" value="delete"/>
    <a  class="btn btn-danger">삭제</a>
</form>

위처럼 해당하는 부분의 intput 태그 내에 네임과 밸류 를 name="_method" value="delete" 로 지정해주면 된다고 한다.

MongoDB CRUD 공부 후기

JPA 를 사용하여 코드를 작성한것은 동일하기 때문에 설정 을 제외하곤 비슷한 부분이 많아
크게 어려움은 아직까진 없었다.

profile
병아리 개발자 의 우당탕탕 성장기

0개의 댓글