서비스 구현 (게시글삭제)

화낼거양's avatar
Nov 18, 2024
서비스 구현 (게시글삭제)
 
 
 
 

페이지 구성 :

 
notion image
 
 
💡
http 1.0 방식으로 진행하고 있기에 (연습용) insert, update, delete 모두 method 방식을 post로 작성하였으며,
세가지 역할을 모두 post로 통합하였기 때문에 추가로 어떤 행동을 진행하여야 할지를
‘/board/id값/delete’ 와 같이 작성하여 컨트롤러에서 구분할 수 있도록 작성하였습니다. (옛날 방식)
 

Controller :

 
@PostMapping("/board/{id}/delete") public String delete(@PathVariable("id") int id) { boardService.게시글삭제(id); return "redirect:/"; }
 
  • 이 메서드는 POST 요청을 통해 특정 게시글을 삭제합니다. 클라이언트가 /board/{id}/delete 경로로 POST 요청을 보내면, 해당 id의 게시글이 삭제되고, 클라이언트는 메인 페이지로 리다이렉트됩니다.
 

Service :

 
@Transactional public void 게시글삭제(int id) { boardRepository.delete(id); }
 
없는 아이디 값을 강제로 삭제하려고 하면 당연히 삭제되지 않을 것이고, 이에 대한 예외 처리를 진행하는 것이 옳은 방식이지만 해당 예제에서는 생략하였습니다.

Repository :

 
public void delete(int id) { Query q = em.createNativeQuery("delete from board_tb where id = ?"); q.setParameter(1, id); q.executeUpdate(); }
 
이전에 작성한 코드에서 쿼리문(id 값을 이용하여 특정 행을 제거)만 delete 문으로 바뀌었습니다.
 
 
 
 
 
 

작성 내용 테스트하기

 
 
 
 
 
notion image
 
5번 게시글의 상세페이지로 이동하여 삭제 버튼을 클릭하였습니다.(수정 버튼을 미리 만든 상태)
 
notion image
 
 
 
>>>>>>>>>>>>>>>>>
notion image
 
 
의도한대로 5번 게시글이 정상적으로 삭제된 것을 확인할 수 있습니다.
 
 
💡
http 1.0 방식으로 진행하고 있기에 (연습용) insert, update, delete 모두 method 방식을 post로 작성하였으며,
세가지 역할을 모두 post로 통합하였기 때문에 추가로 어떤 행동을 진행하여야 할지를
‘/board/id값/delete’ 와 같이 작성하여 컨트롤러에서 구분할 수 있도록 작성하였습니다. (옛날 방식)
 
Share article

moohyun