Template

Template 게시판, 회원관리, 댓글관리 나눠서 관리하기4(mapper, service, controller 게시글 수정, 댓글 작성하기)

머리방울 2022. 8. 9. 23:13

1. 게시글 수정

1) mapper sql 작성하기

<update id="updateBoard">
UPDATE FINAL_BOARD 
SET
BOARD_NUM = #{boardNum}
, TITLE = #{title}
, CONTENT = #{content}
, IS_PRIVATE = #{isPrivate}
, BOARD_PW = #{boardPw}
WHERE BOARD_NUM = #{boardNum}
</update>

2) 인터페이스 메소드 생성

int updateBoard(BoardDTO board);



@Override
public int updateBoard(BoardDTO board) {
int result = sqlSession.update("boardMapper.updateBoard", board);
sqlSession.commit();
return result;
}

3) controller 

else if(command.equals("/updateBoard_form.bo")) {
	int boardNum = Integer.parseInt(request.getParameter("boardNum"));
	String title = request.getParameter("title");
	String content = request.getParameter("content");
	String isPrivate = request.getParameter("isPrivate");
	String boardPw = request.getParameter("boardPw");

        BoardDTO board= new BoardDTO();
        board.setBoardNum(boardNum);
        board.setTitle(title);
        board.setContent(content);
        board.setIsPrivate(isPrivate);
        board.setBoardPw(boardPw);

        boardService.updateBoard(board);

        page="boardDetail.bo?boardNum="+boardNum;
        isRedirect=true;
}

2. 댓글 등록하기

1) mapper sql 작성

<insert id="regReply">
INSERT INTO BOARD_REPLY(
            REPLY_NUM
            , CONTENT
            , WRITER
            , BOARD_NUM
   	) VALUES(
            (SELECT NVL(MAX(REPLY_NUM), 0)+1 FROM BOARD_REPLY)
            , #{content}
            , #{writer}
            , #{boardNum}
)
</insert>

2) 인터페이스 메소드 생성

int regReply(ReplyDTO reply);



@Override
public int regReply(ReplyDTO reply) {
 int result = sqlSession.insert("replyMapper.regReply", reply);
 sqlSession.commit();
return result;
}

 

3) controller

if(command.equals("/reg_reply.re")) {
    String content = request.getParameter("content");
    int boardNum = Integer.parseInt(request.getParameter("boardNum"));

    HttpSession session = request.getSession();
    MemberDTO loginInfo = (MemberDTO)session.getAttribute("loginInfo");
    String writer = loginInfo.getMemId();

    ReplyDTO reply = new ReplyDTO();
    reply.setContent(content);
    reply.setBoardNum(boardNum);
    reply.setWriter(writer);

    replyService.regReply(reply);

    page="boardDetail.bo?boardNum=" + boardNum;
    isRedirect = true;

}

4) jsp

로그인했을때만 댓글창이 보이도록 설정했다.

<c:if test="${not empty sessionScope.loginInfo}">
    <h4>댓글</h4>
    <form action="reg_reply.re" method="post">
    <input type="hidden" value="${board.boardNum}" name="boardNum">
    <div>
        <textarea rows="3" cols="80" name="content"></textarea>
    </div>
    <div>
        <input type="submit" value="등록">
    </div>
    </form>
</c:if>