댓글 삭제는 기존과 동일하게 넘겨 받은 댓글 번호(reno)를 삭제 처리해 주면 된다.

    public boolean deleteBoard6Reply(String param) {
        Integer cnt = sqlSession.selectOne("selectBoard6ReplyChild", param);
       
        if ( cnt > 0) {
            return false;
        }
       
        sqlSession.update("updateBoard6ReplyOrder4Delete", param);
       
        sqlSession.delete("deleteBoard6Reply", param);
       
        return true;
    }

Board6Svc.java

다만, 삭제하기 전에 삭제하려는 대상의 댓글보다 순번이 큰 댓글들의 순서(reorder) 값은 1씩 빼서 순서 값을 맞춰 주는 것이 좋다.

하지 않아도 되지만 값이 들쑥날쑥 한 것이 보기에 좋지 않아서 처리한다.

    <update id="updateBoard6ReplyOrder4Delete" parameterType="gu.board6.BoardReplyVO">
        UPDATE TBL_BOARDREPLY TBR1
         INNER JOIN TBL_BOARDREPLY TBR2 ON TBR2.BRDNO=TBR1.BRDNO AND TBR1.REORDER >TBR2.REORDER AND TBR1.REDELETEFLAG='N'
           SET TBR1.REORDER = TBR1.REORDER - 1
         WHERE TBR2.RENO=#{reno}
    </update>

board6.xml


마지막으로 다음의 SQL 문은 자식 댓글 수를 계산하는 것으로,

자식 댓글이 있으면(cnt > 0) 삭제 하지 않도록 한다.

자식 댓글이 있는데 삭제 하면 화면 리스트에서 트리처럼 보이도록 한 것이 틀어지고

글 내용도 이해 할 수 없게 된다.

    <select id="selectBoard6ReplyChild" resultType="Integer" parameterType="String">
        SELECT COUNT(*)
          FROM TBL_BOARDREPLY
         WHERE REPARENT=#{reparent} AND RENO!=#{reparent} AND REDELETEFLAG='N'
    </select>

board6.xml


자식 댓글이 있으면 서비스에서 false 값을 반환 받게 되고

컨트롤에서는 BoardFailure.jsp 를 호출해서 오류 메시지를 출력해 준다.

    public String board6ReplyDelete(HttpServletRequest request, BoardReplyVO boardReplyInfo) {
       
        if (!boardSvc.deleteBoard6Reply(boardReplyInfo.getReno()) ) {
            return "board6/BoardFailure";
        }

        return "redirect:/board6Read?brdno=" + boardReplyInfo.getBrdno();
    }

Board6Ctr.java

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
<script>
        alert("다른 사람의 댓글이 있어서 삭제할 수 없습니다.");
        history.back(-1);
</script>

BoardFailure.jsp



'Java > 게시판 6: 무한댓글' 카테고리의 다른 글

1. 무한 댓글 시작하기  (14) 2016.05.15
2. 무한 댓글 리스트  (11) 2016.05.15
3. 무한 댓글 쓰기 – control  (3) 2016.05.15
4. 무한 댓글 쓰기 – JSP  (0) 2016.05.15
6. 무한 댓글 삭제 II  (0) 2016.05.15

+ Recent posts