Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

게으른 완벽주의자의 개발자 도전기

Mybatis를 활용한 기초 board만들기3 (게시글 상세페이지, 조회수 증가) 본문

Mybatis

Mybatis를 활용한 기초 board만들기3 (게시글 상세페이지, 조회수 증가)

머리방울 2022. 8. 7. 14:35

1. mapper에서 쿼리 작성

<select id="selectBoardDetail" resultMap="board">
SELECT BOARD_NUM
, TITLE
, WRITER
, CONTENT
, CREATE_DATE
, READ_CNT FROM BOARD
 WHERE BOARD_NUM = #{board_num}

</select>

 
★ #{변수명]에서 getter값을 받기 때문에 정확한 변수명을 작성해야한다고 했다.

하지만, 이와 같이 변수가 하나일 때는 #{whwhwhwh} 이렇게 아무글자나 넣어도

getter값으로 board_num을 불러 올 수 있다. 

 

2. 인터페이스 메소드 작성

리턴값은 BoardDTO 매개변수로는 primary key인 board_num을 넣었다.

BoardDTO selectBoardDetail(int board_num);

@Override
public BoardDTO selectBoardDetail(int board_num) {
BoardDTO board = sqlSession.selectOne("boardMapper.selectBoardDetail", board_num);

(★게시글 목록과는 다르게 전체글 중 하나를 선택하는 것이니까

selectOne을 이용한다)

sqlSession.commit();
return board;
}

 

3. sevlet controller 이동

else if(command.equals("/board_detail.do")) {
int board_num = Integer.parseInt(request.getParameter("board_num"));

BoardDTO board = boardService.selectBoardDetail(board_num);
request.setAttribute("board", board);


(★나는 상세페이지로이동할 때 조회수를 1 증가시키도록 설정했다)

1) mapper

<update id="updateReadCnt">
UPDATE BOARD 
SET
READ_CNT = READ_CNT+1 
WHERE BOARD_NUM = #{board_num}
</update>



2) 인터페이스

int updateReadCnt(int board_num);



@Override
public int updateReadCnt(int board_num) {
int result = sqlSession.update("boardMapper.updateReadCnt", board_num);
sqlSession.commit();
return result;



3) controller

boardService.updateReadCnt(board_num);


page="board_detail.jsp";

 

4. jsp 만들기

<table>
<tr>
<td>글번호</td>
<td>${board.board_num }</td>
<td>작성자</td>
<td>${board.writer }</td>
<td>작성일</td>
<td>${board.create_date }</td>
<td>조회수</td>
<td>${board.read_cnt }</td>
</tr>
<tr>
<td>제목</td>
<td colspan="7">${board.title }</td>
</tr>
<tr>
<td>내용</td>
<td colspan="7">${board.content }</td>
</tr>

</table>
<div align="center">
<input type="button" value="뒤로가기" onclick="location.href='boardList.do';">
<input type="button" value="수정" onclick="location.href='update_form.do?board_num=${board.board_num}';">
<input type="button" value="삭제" onclick="location.href='delete_form.do?board_num=${board.board_num}';">

</div>