-
Comment 댓글
>> Comment<VO>
public class Comment { private int no; private String contents; private Date wdate; private Member member; private Board board; //getter,setter 부분 }
>> ICommentDAO
public interface ICommentDAO { void save(Comment comment); List<Comment> selectByBoardNo(int 게시물번호, int size, RefInteger totalSize); }
>> MemberDAO ( 메서드 추가 )
//member 이름만 갖고오기(다가져올필요 없으니까) @Override public String findName(int no) { String name = null; try { Connection c = ConnectionUtil.getConnection(); Statement 명령전달자 = c.createStatement(); // 선택한 게시물 가져오기 String 수집SQL = String.format("select name from member where no = %d",no); ResultSet 수집된표관리자 = 명령전달자.executeQuery(수집SQL); if(수집된표관리자.next()) { name = 수집된표관리자.getString("name"); } 수집된표관리자.close(); 명령전달자.close(); c.close(); } catch (Exception e) { e.printStackTrace(); } return name; }
>> CommentDAO
@Override public List<Comment> selectByBoardNo(int 게시물번호, int size/* 수집할 댓글수 */, RefInteger totalSize/* 해당 게시물의 총댓글수 */) { ArrayList<Comment> comments = null; Connection c = null; PreparedStatement ps = null; try { c = ConnectionUtil.getConnection(); ps = c.prepareStatement("select * from comment where board_no=? order by wdate desc limit 0,?"); ps.setInt(1,게시물번호); ps.setInt(2,size); ResultSet set = ps.executeQuery(); while(set.next()) { int no = set.getInt("no"); String contents = set.getString("contents"); Date wdate = set.getDate("wdate"); int 작성자번호 = set.getInt("writer"); String 댓글작성자성명 = memberDAO.findNameByNo(set.getInt("writer")); Member member = new Member(); member.setNo(작성자번호); member.setName(댓글작성자성명); Comment comment = new Comment(); comment.setNo(no); comment.setContents(contents); comment.setWdate(wdate); comment.setWriter(member); comments = new ArrayList<Comment>(); comments.add(comment); } set.close(); ps = c.prepareStatement("select count(*) from comment where board_no=?"); ps.setInt(1,게시물번호); ResultSet set2 = ps.executeQuery(); set2.next(); //열의 순서대로 숫자를 넣어도 가져옴. totalSize.value = set2.getInt(1); set2.close(); ps.close(); c.close(); } catch (Exception e) { e.printStackTrace(); } return comments; }
>> 게시물컨트롤
@PostMapping("board/comments/{no}") public ModelAndView 게시물댓글을출력하다(@PathVariable int no, int size,HttpSession session) { RefInteger totalSize = new RefInteger(); List<Comment> comments = commentDAO.selectByBoardNo(no, size, totalSize); ModelAndView mv = new ModelAndView(); mv.addObject("totalSize", totalSize.value); mv.addObject("size", size); mv.addObject("comments", comments); //로그인한 회원의 번호, 로그인하지 않은 경우 null // 댓글을 본인이 달았는지 comment.writer.no 와 비교하여 삭제버튼유무를 가릴려고 mv.addObject("member_no",session.getAttribute("no")); mv.setViewName("/board/댓글창"); return mv; }
'JAVA' 카테고리의 다른 글
Spring:댓글(ajax.ver) (0) 2021.07.26 Spring: 댓글(iframe.ver) (0) 2021.07.26 Spring:resolver (0) 2021.07.26 board,member(spring.ver1) (0) 2021.07.26 Spring:Mapping,Repository,Autowired(DI),multipartFile (0) 2021.07.26