1) ERD
2) DB 생성
DROP TABLE EXAMPLE_COMMENT;
CREATE TABLE EXAMPLE_COMMENT (
comment_no NUMBER PRIMARY KEY,
board_no NUMBER,
user_no NUMBER,
comment_content VARCHAR2(200) NOT NULL,
comment_write_date DATE DEFAULT SYSDATE NOT NULL,
CONSTRAINT comment_board_no FOREIGN KEY(board_no) REFERENCES EXAMPLE_BOARD(board_no),
CONSTRAINT comment_user_no FOREIGN KEY(user_no) REFERENCES EXAMPLE_USER(user_no)
);
DROP SEQUENCE Example_Comment_seq;
CREATE SEQUENCE Example_Comment_seq;
3) CommentVo.java
package com.spring.example.vo;
import java.util.Date;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
public class CommentVo {
private int comment_no;
private int board_no;
private int user_no;
@NotNull
@Length(min = 1, max = 100)
private String comment_content;
private Date comment_write_date;
public CommentVo() {
super();
}
public CommentVo(int comment_no, int board_no, int user_no, String comment_content, Date comment_write_date) {
super();
this.comment_no = comment_no;
this.board_no = board_no;
this.user_no = user_no;
this.comment_content = comment_content;
this.comment_write_date = comment_write_date;
}
public int getComment_no() {
return comment_no;
}
public void setComment_no(int comment_no) {
this.comment_no = comment_no;
}
public int getBoard_no() {
return board_no;
}
public void setBoard_no(int board_no) {
this.board_no = board_no;
}
public int getUser_no() {
return user_no;
}
public void setUser_no(int user_no) {
this.user_no = user_no;
}
public String getComment_content() {
return comment_content;
}
public void setComment_content(String comment_content) {
this.comment_content = comment_content;
}
public Date getComment_write_date() {
return comment_write_date;
}
public void setComment_write_date(Date comment_write_date) {
this.comment_write_date = comment_write_date;
}
}
4) BoardController.java
@RequestMapping("readContentPage")
public String readContentPage(int board_no, Model model, @ModelAttribute("commentVo") CommentVo commentVo) {
boardService.increaseReadCount(board_no);
HashMap<String, Object> map = boardService.getBoard(board_no);
model.addAttribute("data", map);
ArrayList<HashMap<String, Object>> dataList = boardService.getCommentList();
model.addAttribute("dataList", dataList);
return "board/readContentPage";
}
5) BoardService.java
public ArrayList<HashMap<String, Object>> getCommentList() {
ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
ArrayList<CommentVo> commentList = boardSQLMapper.getCommentList();
for (CommentVo commentVo : commentList) {
int userNo = commentVo.getUser_no();
int boardNo = commentVo.getBoard_no();
BoardVo boardVo = boardSQLMapper.getBoardByNo(boardNo);
UserVo userVo = userSQLMapper.getUserByNo(userNo);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("userVo", userVo);
map.put("boardVo", boardVo);
map.put("commentVo", commentVo);
System.out.println(boardNo);
dataList.add(map);
}
return dataList;
}
6) BoardSQLMapper.java
/* 게시글 댓글 조회 쿼리*/
public ArrayList<CommentVo> getCommentList();
7) BoardSQLMapper.xml
<select id="getCommentList" resultType="com.spring.example.vo.CommentVo">
SELECT * FROM EXAMPLE_COMMENT ORDER BY comment_no DESC
</select>
8) readContentPage.jsp
<div class="row mt-2">
<span>댓글목록</span>
<div class="form-control" style="border: 1px solid #ff0000;">
<c:forEach items="${dataList }" var="date">
<div class="col">${date.userVo.user_nickname }
<div class="row">
${date.commentVo.comment_content }
<div class="col">
<fmt:formatDate value="${date.commentVo.comment_write_date }" pattern="yyyy년MM월dd일 HH시 mm분 ss초" />
</div>
<div class="d-grid gap-2 d-md-flex justify-content-md-end">
<a href="./deleteCommentProcess?comment_no=${date.commentVo.comment_no }&board_no=${date.boardVo.board_no }" class="btn btn-outline-dark" type="button">댓글삭제</a>
<a href="./updateCommentContentPage?comment_no=${date.commentVo.comment_no }" class="btn btn-outline-dark" type="button">댓글수정</a>
</div>
</div>
</div>
</c:forEach>
</div>
</div>
9) 실행화면
'공부 > Spring' 카테고리의 다른 글
[Spring] 게시판 만들기 : 댓글 작성 (0) | 2022.09.10 |
---|---|
[Spring] 게시판 만들기 : 게시글 검색 (0) | 2022.09.10 |
[Spring] 게시판 만들기 : 페이징 처리 (0) | 2022.09.10 |
[Spring] 게시판만들기 : 조회수증가 (0) | 2022.09.09 |
[Spring] 게시판 만들기 : 최신글 (0) | 2022.09.09 |
댓글