현민이가 알려줌 ->
readcount가 0이니 update문을 적어서 1씩 증가하면 될것이다.
(hint : db에서 컬럼명에 +1하는게 가능함
hint2 : 자바에서 1~10까지 더해 값을 저장하는 sum변수를 생각해보자)
당연히 클릭하는 글에 조회수가 올라가야하니 where절이 들어갈것이다.
쿼리문을 작성하다보면 외부에서 해당 글인 iboard가 필요한걸 느껴서 인자값에 iboard를 적었을것이다.
그리고 쿼리문 다 작성 후 리턴값을 int로 적을 수 있었을 것이고, void를 적었을 수도 있을것이다.
이제 이 readCountUp메소드를 호출할건데 어디서 호출할지 생각해보자
(생각하고 스크롤 내리세요)
조회수가 올라가야하는 구조 파악을 해야한다.
게시글을 선택하여 디테일 페이지로 갈때 조회수가 올라가야한다.
다 알려 줬다 떠먹기만 하면된다.
이제 글을 클릭할때 마다 데이터베이스에 select문을 쳐보면
조회수가 1씩 증가하는 것을 볼 수 있을것이다.
list페이지에서 조회수가 보이려면 readCount 컬럼이 추가됬으니
dao의 getAllBoard()메소드에서 약간의 코드 추가만 해주면 되겠죠?
직접해보세요
나는 db에서 컬럼명+1 해도되는 걸 깜빡하고 있어서 힘든 방식으로 countUp시켰다.
위 방식으로 한 사람들은 이런 방식으로도 할 수 있었구나를 생각하면 좋을거 같다...
public void readCountUp(int no) {
int count=0;
getCon();
try {
String getReadCountSql = "select readcount from board where no = ?";
pstmt=con.prepareStatement(getReadCountSql);
pstmt.setInt(1, no);
rs=pstmt.executeQuery();
if(rs.next()) {
count = rs.getInt(1);
count++;
}
String sql = "update board set readcount = ? where no = ?";
pstmt=con.prepareStatement(sql);
pstmt.setInt(1, count);
pstmt.setInt(2, no);
pstmt.executeUpdate();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
=======================================================================
이제 조회수기능까지 구현했으니
게시글에 댓글 기능까지 혼자 구현해보세요
숙제입니다.
먼저 조금 힌트를 드리면
(reple table을 하나 만드는데 어떤 컬럼과 옵션은 뭘 줄지 생각하고
board테이블을 참조하는 fk키를 줘야한다)