2019.02.20 Model2 : 게시판 만들기(4)
2019. 2. 20. 10:52ㆍJSP
#1 BBS(게시판)에서 변수값으로
조회수 업데이트(올리기)하는 작업
① bbs.jsp에서 bbsId값을 클릭했을 경우 해당하는 글의 내용이 보이는 하이퍼링크를 걸어준다.
-> 여기서 ? 뒤에 값이 파라미터의 값이므로 받아오는 변수이름도 같아야한다.
② bbsDao.java에서 조회수를 업데이트할 메소드를 생성한다 -> hitUpdate
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // hitUpdate 조회수 업데이트 메소드 public int hitUpdate(String bbsId) { StringBuffer query = new StringBuffer(); con = this.getConnection(); query.append("UPDATE bbs SET BBSHIT = BBSHIT + 1 WHERE BBSID=? "); // 업데이트 SQL문 try { pstmt = con.prepareStatement(query.toString()); pstmt.setString(1, bbsId); System.out.println(pstmt); result = pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } finally { this.close(con, pstmt, null); } return result; }// hitUpdate | cs |
③ 메소드를 작업하게 될 bbsViewController.java를 com.bbs.controller패키지 안에서 생성한다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | package com.bbs.controller; import java.io.IOException; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.bbs.dao.bbsDao; import com.bbs.dto.bbsDto; public class bbsViewController extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { process(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { process(req,resp); } //DB에서 bbsID값으로 검색하여 내용을 가져올 Dao의 메소드를 호출하는 메소드 private void process(HttpServletRequest req, HttpServletResponse resp) { String bbsId = req.getParameter("bbsId"); //bbs.jsp에서 클릭된 bbsId 값을 받아온다. bbsDao bDAO = bbsDao.getInstance(); bbsDto bDTO = new bbsDto(); int result = bDAO.hitUpdate(bbsId);//조회수를 늘리는 메소드 호출 bDTO = bDAO.selectById(bbsId); // bbsId값으로 자료를 조회해온다 req.setAttribute("bbsView", bDTO); //받아온 내용은 bbsView에 셋팅 RequestDispatcher rd = req.getRequestDispatcher("WEB-INF/bbsView.jsp"); try { rd.forward(req, resp); } catch (ServletException | IOException e) { e.printStackTrace(); } } } | cs |
#2 BBSID값으로 자료를 조회하는 작업
① bbsDao에 bbsId값으로 조회하는 메소드를 작성한다.
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 32 33 34 | // bbsID값으로 DB의 해당하는 행을 출력하는 메소드 public bbsDto selectById(String bbsId) { bbsDto bDTO = new bbsDto(); con = this.getConnection(); StringBuffer query = new StringBuffer(); query.append("SELECT * "); query.append("FROM bbs "); query.append("WHERE BBSID = ? "); try { pstmt = con.prepareStatement(query.toString()); pstmt.setString(1, bbsId); rs = pstmt.executeQuery(); // 유의할 것 while (rs.next()) { // 행은 하나이기 때문에 while은 필요없지만 형식상 추가한다. bDTO.setId(rs.getString("ID")); bDTO.setBbsId(rs.getString("BBSID")); bDTO.setBbsTitle(rs.getString("BBSTITLE")); bDTO.setBbsDate(rs.getString("BBSDATE")); bDTO.setBbsCategory(rs.getString("BBSCATEGORY")); bDTO.setBbsContent(rs.getString("BBSCONTENT")); bDTO.setBbsHit(rs.getString("BBSHIT")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //rs를 사용해서 원칙적으로 끊어줘야되지만 계속사용하므로 굳이 끊어주지않아도 된다. this.close(con, pstmt, null); } return bDTO; }// selectById | cs |
② 마찬가지로 bbsViewController.java에서 생성된 메소드 selectById를 동작하게 추가한다.
'JSP' 카테고리의 다른 글
MVC Pattern(1) - 첫 화면 띄우기 (0) | 2019.08.19 |
---|---|
2019.02.20 Model2 : 게시판 만들기(6) (0) | 2019.02.20 |
2019.02.19 Model2 : 게시판 만들기(3) (0) | 2019.02.19 |
2019.02.19 Model2 : 게시판 만들기(2) (0) | 2019.02.19 |
2019.02.18 Model2 : 게시판 만들기(1) (0) | 2019.02.18 |