조회하기, 추천하기

·2024년 11월 8일

스프링

목록 보기
19/33

게시물 조회수 올리기

public int boardViewCntUpdate(int bidx);

1. BoardService에 조회수 올리는 메서드 추가해주기

public int boardViewCntUpdate(int bidx);

2. BoardMapper에도 똑같은 메서드 추가!

	@Override
	public int boardViewCntUpdate(int bidx) {
		int cnt = bm.boardViewCntUpdate(bidx);
		return cnt;
	}

3. impl로 가서 구현되지 않은 메서드 add로 추가.

<update id="boardViewCntUpdate" parameterType="int" >
update board SET viewcnt = viewcnt+1 where bidx = #{bidx}
</update>

4. boardMapper.xml로 가서 쿼리 만들어주기.

boardService.boardViewCntUpdate(bidx);

5. 컨트롤러로 돌아와서 boardContents 메서드 부분에 조회수 추가 메서드 넣어주기


추천하기 기능

	@ResponseBody  //Java 객체를 JSON 형태로 변환해 클라이언트에게 보내는 역할
	@RequestMapping(value="boardRecom.aws", method=RequestMethod.GET)
	public JSONObject boardRecom(@RequestParam("bidx") int bidx) {
		
		JSONObject js = new JSONObject();
		
		return js;
	}

1. 컨트롤러에서 우선 형식을 만들어놓기. 여기선 제이슨 객체를 쓰기 때문에 제이슨 형태로 나와야 한다.

@ResponseBody?

어노테이션은 클라이언트에게 데이터를 직접 반환할 때 사용된다. 원래는 컨트롤러에서 JSP 페이지로 이동하거나 HTML을 반환하지만 @ResponseBody를 사용하면 HTML 대신 JSON, XML, String 등의 데이터를 그대로 클라이언트에 전달할 수 있다.

public int boardRecomUpdate(int bidx);

2. BoardService에 추천 업데이트 메서드 추가해주기

public int boardRecomUpdate(int bidx);

3. BoardMapper에도 똑같은 메서드 추가!

	@Override
	public int boardRecomUpdate(int bidx) {
		int cnt = bm.boardRecomUpdate(bidx);
		return cnt;
	}

4. impl로 가서 구현되지 않은 메서드 add로 추가.

<update id="boardRecomUpdate" parameterType="int" >
update board set recom= recom+1 where bidx= #{bidx}
</update>

5. boardMapper.xml로 가서 쿼리 만들어주기.

	// 추천하기 기능 구현
	@ResponseBody 
	@RequestMapping(value="boardRecom.aws", method=RequestMethod.GET)
	public JSONObject boardRecom(@RequestParam("bidx") int bidx) {
		
		int value = boardService.boardRecomUpdate(bidx);
		
		JSONObject js = new JSONObject();
		js.put("value", value);  // value값을 담아서 json에게 넘겨주기 
		
		return js;
	}
	

6. 컨트롤러 완성

<!-- 게시물 추천하기 쿼리 구문 -->
<update id="boardRecomUpdate" parameterType="bv" >
	<selectKey keyProperty="recom" resultType="int" order="AFTER">
	select recom from board where bidx = #{bidx}
	</selectKey>
	update board set recom= recom+1 where bidx= #{bidx}
</update>

7. 총합을 구해야 하기 때문에 쿼리 구문 수정

	@Override
	public int boardRecomUpdate(int bidx) {
		
		BoardVo bv = new BoardVo();
		bv.setBidx(bidx);
		
		int cnt = bm.boardRecomUpdate(bv);
		return cnt;
	}

8. 쿼리 구문에서 값을 bv로 받기로 했기 때문에 impl로 가서 Vo객체를 불러와 bidx값을 넣어준다.

public int boardRecomUpdate(BoardVo bv);

9. 보드매퍼 가서 바꿔주기

	@Override
	public int boardRecomUpdate(int bidx) {
		
		BoardVo bv = new BoardVo();
		bv.setBidx(bidx);
		
		int cnt = bm.boardRecomUpdate(bv);
		int recom = bv.getRecom();  //값을 다시 꺼내주기
		return recom;
	}

10 impl 최종 수정 ^^.///

11. 이제 결과값은 recom으로 받으면 된다.

0개의 댓글