Spring

chap 20 - 답변형 게시판, 계층형 쿼리

hongkd 2020. 1. 15. 15:44

원래는 테이블을 지운 후 다시 만들어야 하는데

우리는 컬럼을 추가하는 쪽으로 하였다.

 

위에 3가지 컬럼을 tblBoard 테이블에 추가 해주어야 한다.

 

답변글은 게시판의 글목록의 개수대로 1~ 번호가 나아가는데 해당하는 원글의 개수(index) 번호를 알아와서 알아온 번호를 groupno로 사용한다.

 

fk_seq 는 foreign가 아니며 원글(부모글)의 seq컬럼의 값을 가지며, 답변글이 아닌 경우 0을 가지도록 한다. (답변글의 답변글을 구분해 주기 위함이다.)

 

depthno 는 해당 글에 답변 글을 달았을 경우 한칸씩 들여서 나오는 것이 좋다.

 

추가한 컬럼 groupno 를 추가할때 number 를 주었을때 오류로 인해 추가가 되어지지 않았다.

그러므로 number 에 default 0 값을 주고 추가하였다.

여기서 groupno 는 해당 글의 개수에 따라 증가되어야 하므로 0이 들어가면 안된다.

1부터 개수대로 올라가야 한다.

 

위와 같이 상관서브쿼리를 사용한다.

[ BoardVO.java ]

[ board.xml ]

#93.을 수정하여야 한다.

 

[ view.jsp ]

 

[ BoardController.java ]

#.51번 안에 #130.번 을 추가해 주었다.

 

[ add.jsp ]

 

[ BoardController.java ]

service로 가자~ boardvo 에 모두 담겨져 있다.

 

[ BoardService.java ]

#55.번 안에 #132.번이 있다.

 

[ InterBoardDAO.java ]

[ BoardDAO.java ]

[ board.xml ]

[ BoardDAO.java ]

[ board.xml ]

 

 

답변글쓰기를 눌러서 글을 쓰면~~

19 번인 맨위로 나온다.

 

맨위로 새로 나오는 것이 아니라 해당하는 원글 아래에 나오도록 해야한다.

 

먼저 계층형 쿼리를 배워보자.

 

[ board.xml ]

 

 

위에처럼 답변글이 원글 아래에 나온다.

이제 보기좋게 다듬어야한다.

 

[ list.jsp ]

└Re 라는 글자를 붙이도록 해보자

 

들여쓰기를 해주자.

 

 

관리자만 답글쓰기가 가능하도록 해보자.

 

[ view.jsp ]

답변글 쓰기 버튼을 관리자만 보여주도록 하면 된다.

 

위에처럼 하면~ 답글쓰기 버튼이 일반회원으로 했을경우 버튼이 안보이고

admin 으로 로그인 하면 답글쓰기 버튼이 보인다.