본문 바로가기
프로그래밍/SpringBoot

[스프링 부트 게시판] 게시글 삭제 만들기

by 소소로드 2020. 9. 30.

게시글 삭제 만들기


게시글 삭제는 가장 쉽다. 그냥 삭제버튼을 누르면 delete쿼리를 실행하도록 만들면 된다.


boardRead
<button id="delete" onclick="location.href='boardDelete?num=${data.num}'">삭제</button>

역시 해당 소스를 보면 num을 통해 삭제한다는 것을 알 수 있다.
지금은 간단하게 삭제되도록 만들지만, 앞으로 로그인/회원가입등등이 지나면 
비밀번호를 통해 삭제하는 방법으로 다시 수정할 것이다.


BoardController

1
2
3
4
5
6
7
// 게시글 삭제
    @RequestMapping(value="/boardDelete")
    public String boardDelete(@RequestParam("num"int num) throws Exception {
        
        boardService.boardDelete(num);
        return "redirect:boardList";
    }
cs


BoardService

1
2
3
4
// 게시글 삭제
     public void boardDelete(int num) throws Exception {
            boardMapper.boardDelete(num);
    }
cs

BoardMapper
1
2
// 게시글 삭제
     public void boardDelete(int num) throws Exception;
cs


BoardMapper.xml

1
2
3
4
<delete id="boardDelete" parameterType="int">
        DELETE FROM hello_board
        WHERE num = #{num}
    </delete> 
cs


게시판 만들기 총 정리

[적용관련]
1. controller - service - mapper(DAO) - mapper의 mvc 패턴 적용
2. 스프링부트에서 controller에서 service 주입시에는 @Autowired를 사용한다.
3. 스프링부트에서 mapper(DAO)는 인터페이스로 만든다.
4. mapper(DAO)의 Mapper 이름과 mapper의 Mapper 이름 반드시 일치
5. mapper(DAO)의 Mapper의 함수이름과 (now()) mapper의 Mapper의 Id 이름 반드시 일치

[게시판 관련]
1. 글쓰기는 새로 작성하는 것이기 때문에,
   글수정은 어떤 내용을 바꿀지 모르기 때문에 BoardVO 객체를 파라미터로 받아와서 사용한다.
2. 읽기/ 삭제는 단순한 작업이기 때문에 @RequestParam을 사용하여 num 하나만 받아와서 글을 읽는다.
3. resultType 프로퍼티는 해당 쿼리 내용을 JAVA의 어떤 타입으로 보여줄 것이냐를
   명시한다. insert에서는 사용할 수 없고 select에서 사용한다.
   즉, 그러므로 mapper insert엔 아무것도 사용하지 않으며
   읽기에는 BoardVO타입으로 반환하여 화면상에서 BoardVO의 데이터를 뿌려주게 된다.
4. parameterType 프로퍼티는 구문의 파라미터타입을 패키지 경로를 포함하여
   정확히 써주는 것이다. 수정에서는 BoardVO타입으로, 삭제에서는 int타입으로 써준다.