board 조회수올리기

Hwawon_2·2022년 3월 17일
0
post-thumbnail

조회수 올리기 ->
쿼리문 2개 실행하기 -> 특정 글을 조회할때, hit 컬럼값이 1씩 증가하도록 해야함.

특정 글 조회시
1.hit컬럼 값을 1 증가시킴
2. 디테일한 글 내용 조회하기
조회수 1올리기는 어떤 메서드와 같이 실행
(getBoardDetail메스드와 같이 실행해야해서 내부에 심는 방법으로)
BoardDAO

서비스가 아닌 getBoardDetail 실행시 자동으로 같이 실행되도록 처리하겠습니다.

getBoardDetail 부분에upHit(board_num);작성을 하여
조회수 올리는 로직을 실행한 다음 글정보 불러오게 처리
(클릭해가지고 특정한 글을 조회한 순간 조회수가 올라감)

글 제목을 클릭할때마다 조회수를 상승시키는 메서드
public void upHit(int bId)를 작성해줍니다.

실행해보면 조회수가 올라가는걸 확인할 수 있다.

private로 잡은 이유는
외부에서 호출할수 없게 내부에서만 호출할수 있는 메서드로 만들기 위해 private로 작성

getboardDetaill를 사용할때
1.글조회 2.글 수정
3. updateForm들어갈때 해당 특정글을 정보를 조회할때

지금 위에방식에 문제는
수정로직이든 조회로직이든 디테일이 실행만하면 조회수가 올라감
해결 방법 두가지
첫번째. public Board getBoardDetail(int board_num)을 복사해서 2번을 만들어 줍니다.
그리고 upHit(board_num)만 안돌아가게 지워줍니다.

public Board getBoardDetail (upHit 포함)
public Board getBoardDetail2 (upHit 미포함)

BoardUpdateFormService
에서 서비스를 호출할때 public Board getBoardDetail2번을 호출하면 됨

실행해보면

조회수가 7인데 수정하기를 눌러도 조회수가 안올라 가는걸 확인할수 있다.

두번째 방법.
getBoardDetail일에 upHit를 주석처리 하고,

upHit메서드를 private -> public로 변경해준다.

public은 외부에서도 호출이 가능하니까
BoardDetailService로 가서
다오 생성 밑에

작성해준다.
실행해보면 이것도 역시

수정하기 버튼을 눌러도 조회수가 안올라가는것을 확인할수 있다.

profile
코딩 일기장

0개의 댓글