[spring실습] 게시판 만들기 - 조회수 추가, Oracle 칼럼 추가, default, null 설정
[spring실습] 게시판 만들기 - 글 쓰기 기능 만들기 : integer-ji.tistory.com/341
[spring실습] 게시판 만들기 - 글 수정 기능 만들기 : integer-ji.tistory.com/342
[spring실습] 게시판 만들기 - 글 삭제 기능 만들기 : integer-ji.tistory.com/343
[spring실습] 게시판 만들기 - 상세(Detail) 페이지 추가 : integer-ji.tistory.com/346
이어서 진행 됩니다.
디테일 페이지에 진입할 때 얼마나 많은 사용자가 진입했는지 기록을 남기기 위한 조회수를 추가해 줍니다.
Oracle Table 조회수 카운트 추가하기
현재 게시판 만들기 기능을 사용하는 Table의 상태입니다.
테이블 명을 클릭하고 Alt + c를 누르면 테이블 상태를 확인할 수 있습니다.
조회수를 카운트하기 위해 칼럼 하나를 더 추가해 줍니다.
ALTER TABLE TB_PROJECT ADD VIEW_COUNT NUMBER;
SELECT * FROM TB_PROJECT ORDER BY PRO_ID DESC;
commit;
VIEW_COUNT 칼럼을 추가하여 줍니다.
테이블에 컬럼을 추가할 때 null 값을 허용하지 않으며 default 값으로 0으로 설정하여 줍니다.
꼭 commit를 실행하며 select 문을 사용해 칼럼이 잘 추가되었는지 확인해 줍니다.
조회수 Count +1 Update문 추가, Select문 수정
<update id="viewCount">
UPDATE
TB_PROJECT
SET
VIEW_COUNT = VIEW_COUNT + 1
WHERE
PRO_ID = #{proId}
</update>
PRO_ID를 이용해 게시글 번호 당 VIEW_COUNT + 1을 해줍니다.
해당 쿼리문은 VIEW_COUNT에 + 1을 누적하여 실행시킵니다.
SELECT
PRO_ID,
PRO_TITLE,
PRO_BODY,
PRO_DATE,
VIEW_COUNT
FROM TB_PROJECT
ORDER BY PRO_ID DESC
Table에 VIEW_COUNT가 추가되었기 때문에 Select문을 수정하여 줍니다.
ProjectVO.java VIEW_COUNT 추가
private Integer viewCount;
public Integer getViewCount() {
return viewCount;
}
public void setViewCount(Integer viewCount) {
this.viewCount = viewCount;
}
viewCount를 VO에 Integer 형으로 getter과 setter을 추가하여 줍니다.
(getter과 setter을 추가하려는 private를 한번 누르고 Alt + Shift + s -> Generate Getters and Setters)
DAO 추가
void viewCount(int proId);
viewCount도 Delete와 마찬가지로 게시글 기준만 있으면 되기 때문에 proId만 받아줍니다.
Service 추가
void viewCount(int proId);
@Override
public void viewCount(int proId) {
projectMapper.viewCount(proId);
}
Countroller 추가
/**
* 글을 상세 페이지.
* @return projectDetailForm
*/
@RequestMapping(value = "/projectDetailForm.do")
public String detailProject(@ModelAttribute("projectVO") ProjectVO projectVO, Model model) {
// 조회수 증가
projectService.viewCount(projectVO.getProId());
List<ProjectVO> list = projectService.detailProject(projectVO.getProId());
model.addAttribute("list", list);
return "projectDetailForm";
}
Controller에서 글 상세 페이지 진입 시 조회수 중가 Api를 호출하여 줍니다.
Line 95를 통하여 detailProject가 호출될 때 viewCount도 같이 호출이 되어 조회수가 증가됩니다.
Test
projectList.jsp에 조회수를 추가하여 줍니다.
이제 서버를 실행시켜 보면
조회수 칸이 생겼으며
1번 "첫 글 제목"을 눌러 1번 게시글의 상세 페이지로 진입하면
조회수가 증가된 걸 확인할 수 있습니다.
참고 GitHub : github.com/integerJI/spring.git
'코딩공부 > Java Spring' 카테고리의 다른 글
spring 회원가입 기능 만들기 (0) | 2021.01.10 |
---|---|
[spring 실습] 게시판 만들기 - 상세(Detail) 페이지 추가 (0) | 2021.01.01 |
[spring 실습] 게시판 만들기 - 글 삭제 기능 만들기 (0) | 2020.12.30 |
[spring 실습] 게시판 만들기 - 글 수정 기능 만들기 (0) | 2020.12.30 |
[spring 실습] 게시판 만들기 - 글 쓰기 기능 만들기 (0) | 2020.12.28 |