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>