게으른 완벽주의자의 개발자 도전기
Template 게시판, 회원관리, 댓글관리 나눠서 관리하기4(mapper, service, controller 게시글 수정, 댓글 작성하기) 본문
Template
Template 게시판, 회원관리, 댓글관리 나눠서 관리하기4(mapper, service, controller 게시글 수정, 댓글 작성하기)
머리방울 2022. 8. 9. 23:131. 게시글 수정
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>