[스프링 부트] 14. 글 삭제(Delete) 구현

KangHo Lee's avatar
Nov 18, 2024
[스프링 부트] 14. 글 삭제(Delete) 구현

1. 삭제 버튼 생성

<form action="/board/{{model.id}}/delete" method="post"> <!-- body는 필요x, id는 패스변수에 있다 --> <button type="submit">삭제</button> </form>
💡
mapping url에 /delete 를 붙인 이유
  • 연습을 위해 http/1.0 으로 만들었습니다.
  • post 요청 방식으로 update, delete, insert 모두를 구현해야 해서 구분을 위해 적었습니다.
  • 요청 방식 put, update는 http/1.1에 생깁니다.

2. Repository

public void delete(int id) { Query q = em.createNativeQuery("delete from board_tb where id=?"); q.setParameter(1, id); q.executeUpdate(); // insert, update, delete 때 사용 }
💡
executeUpdate() 메서드는 insert, update, delete 쿼리문을 실행시킬 때 작성해야합니다.

3. Repository Test

@Test public void delete_test() { // given int id = 1; // when boardRepository.delete(id); // then List<Board> boardList = boardRepository.findAll(); System.out.println("size : " + boardList.size()); }

4. Controller

@PostMapping("/board/{id}/delete") public String delete(@PathVariable int id) { boardService.게시글삭제(id); return "redirect:/"; }

5. Service

@Transactional public void 게시글삭제(int id) { boardRepository.delete(id); }
💡
@Transactional 은 select제외 delete, insert, update에 필요합니다.
 
Share article

devleekangho