inblog logo
|
devleekangho
    스프링부트

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

    KangHo Lee's avatar
    KangHo Lee
    Nov 18, 2024
    [스프링 부트] 14. 글 삭제(Delete) 구현
    Contents
    1. 삭제 버튼 생성2. Repository3. Repository Test4. Controller5. Service

    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
    Contents
    1. 삭제 버튼 생성2. Repository3. Repository Test4. Controller5. Service

    devleekangho

    RSS·Powered by Inblog