게으른 완벽주의자의 개발자 도전기
Mybatis를 활용한 기초 board만들기 4(글 수정, 글 삭제) 본문
1. mapper에서 글 수정, 글삭제 sql 작성
-글 수정
<update id="updateBoard">
UPDATE BOARD
SET TITLE = #{title}
, WRITER = #{writer}
, CONTENT = #{content}
WHERE BOARD_NUM = #{board_num}
</update>
-글 삭제
<delete id="deleteBoard">
DELETE BOARD
WHERE BOARD_NUM = #{board_num}
</delete>
2. 인터페이스로 이동
-글 수정
int updateBoard(BoardDTO board);
@Override
public int updateBoard(BoardDTO board) {
int result = sqlSession.update("boardMapper.updateBoard", board);
sqlSession.commit();
return result;
-글 삭제
int deleteBoard(int board_num);
@Override
public int deleteBoard(int board_num) {
int result = sqlSession.delete("boardMapper.deleteBoard", board_num);
sqlSession.commit();
return result;
3. servlet controller 이동
-게시글 수정페이지로 이동
나는 onclick을 이용하여 수정페이지로 이동하도록 만들었다.
수정은 기존 상세페이지의 내용을 수정하기 때문에
상세페이지 데이터를 불러오는 작업을 해야한다.
else if(command.equals("/update_form.do")) {
int board_num = Integer.parseInt(request.getParameter("board_num"));
BoardDTO board = boardService.selectBoardDetail(board_num);
request.setAttribute("board", board);
page = "update_form.jsp";
- 게시글 수정 (수정 후 상세페이지로 갈 것)
else if(command.equals("/update_form_write.do")) {
int board_num = Integer.parseInt(request.getParameter("board_num"));
String title = request.getParameter("title");
String writer = request.getParameter("writer");
String content = request.getParameter("content");
BoardDTO board = new BoardDTO();
board.setBoard_num(board_num);
board.setTitle(title);
board.setWriter(writer);
board.setContent(content);
boardService.updateBoard(board);
상세페이지로가기 위해서는 primary key인 board_num이 필요하다.
isRedirect가 true일 때 나는
response.sendRedirect(page); 실행하도록 설정했다.
이는 데이터를 가져 가지 않기 때문에 아래와 같이 데이터 보낼 수 있도록 설정함
page = "board_detail.do?board_num=" + board_num;
★"board_detail.do?board_num=" 은 문자열이다
board_num(int) 정수이다.
문자열+숫자는 문자열이기에
"board_detail.do?board_num="10(게시글번호)이렇게 된다는 말
isRedirect = true;
-게시글 삭제(삭제하면 다시 목록으로 돌아가도록 한다)
else if(command.equals("/delete_form.do")) {
int board_num = Integer.parseInt(request.getParameter("board_num"));
boardService.deleteBoard(board_num);
page = "board_list.do";
isRedirect=true;
}
4. jsp
<form action="update_form_write.do" method="post">
<input type="hidden" name="board_num" value="${board.board_num }">
<table>
<tr>
<td>제목</td>
<td>
<input type="text" value="${board.title }" name="title">
</td>
</tr>
<tr>
<td>작성자</td>
<td>
<input type="text" value="${board.writer }" name="writer">
</td>
</tr>
<tr>
<td>내용</td>
<td>
<textarea rows="7" cols="50" name="content" >${board.content }</textarea>
</td>
</tr>
</table>
<div align="center">
<input type="submit" value="수정">
</div>
</form>
'Mybatis' 카테고리의 다른 글
Mybatis를 활용한 기초 board만들기3 (게시글 상세페이지, 조회수 증가) (0) | 2022.08.07 |
---|---|
Mybatis를 활용한 기초 board만들기 2(글쓰기 페이지) (0) | 2022.08.07 |
Mybatis 활용한 기초 board 만들기 1 (기본파일 세팅, index, 게시판 목록) (0) | 2022.08.06 |