-
(국비교육) 47 - project1 이어하기14 (개발/국비교육 2023. 8. 4. 17:51
■ StarUML
데이터베이스 구조 설명할 수 있는 소프트웨어 StarUML 이다.
Data Model 클릭
Entity 클릭 후 빈화면 클릭
다음과 같이 데이터 구조를 그릴 수 있다.
테이블 이름 바꾸기
RENAME TABLE `comment` TO `comments`;
댓글 모두 불러오기
축약어로 설정해주면 축약어로 쓸 수 있다.
c* : c 의 모든 내용 나와
left join 왼쪽에 있는거 다 찍어주고 추가로 오른쪽에 내용이 있다면 나오는 것이다.
뷰 생성
게실글 9 번에 댓글 3개 있는 것 확인 가능
보드뷰테이블 내용 복사
보드뷰에 댓글 수 추가
다음과 같이 commentcount 가 추가되었다.
jsp 에 찍어주는데 0이 아닌 경우에만 찍어준다.
다음과 같이 게시글 수가 나온다.
효과도 다음과 같이 줄 수 있다.
게시글 있는 글을 클릭하면 댓글 3개 있어서 나온다.
댓글이 1개라도 있으면 리스트로 담아서 보여주게 할 것이다.
bno 게시글에 댓글이 몇 개 있는지를 물어보기 위해서 bno 담아서 작업한다.
※ 추후 commentList 로 변수명 모두 맞췄다.
메소드 만들어주기
리스트 타입으로 받으니 selectList 이다.
sql 문 써준다.
만약 길이를 구하는 fn 선언 위에 선언해주고,
만약 길이가 0보다 클 경우 즉 댓글이 있을 경우 댓글이 있어요
없을 경우 댓글이 없어요 출력하게 한다.
출력 확인 가능하다.
다음과 같이 게시물 밑에 댓글이 달린다.
■ 댓글 입력창 만들기
* 댓글 열었을 경우 열리
창 열리기 설정해준다.
두 개의 값이 넘어올 예정이다.
커맨트 관련 컨트롤러 만들어준다.
comment post 맵핑해준다.
@requestparam map 으로 받는다.
map 을 해주면 detail 에서 form name="" 의 모든 값들이 넘어오게 된다.
이제 syso map 을 하게 되면 comment 와 bno 가 넘어온 것을 확인할 수 있다.
* 에러해결
버튼 submit 으로 변경 안해서 안날라오는 오류 바꿔준다.
input 숨겨서 안에 bno 값 담아온다.
왜냐하면 우리는 dto 에 담겨있는 bno 값을 파라미터로 담아서 이를 통해 detail 뒤에 각 개시판 번호 찍기 위해서이다.
데이터베이스에 영향받는 행을 나타낸다.
만약 댓글을 입력하면 1 그렇지 않으면 0 이 출력되기 때문이다.
그리고 이름을 Insert 로 이름 지은 이유는 받은 댓글 내용을 데이터 값에 넣어줘야 하기 때문이다.
데이터를 담은 map 을 담아서 넘겨준다.
서비스에 메소드 만들어주기
DAO 메소드 만들어주기
입력받은 댓글을 데이터베이스에 넣기 위해서 insert 를 넣어준다.
m_id를 출력하고자 한다. 따라서 조인한 m_no를 이용하고자 한다.
그러나 m_no 값은 map 에 담겨있지 않아서 나오지 않는다.
따라서 session 에 있는 mid 를 통해 이용하고자 한다.
세션 사용을 위해 세션을 불러준다.
세션에서 mid를 부르면 된다.
값이 출력된다.
map 에 이제 mid 값 넣어준다.
서브쿼리는 () 로 나타내주면 된다.
map 으로 넣어준 변수명과 일치해야 한다.
0일때가 삭제된 것 1인게 삭제되지 않은 것
사용자들은 삭제된 줄 알지만 사실 삭제된 것이 아니다.
마찬가지로 보드도 bdel 설정해준다.
update 로 사용자가 글이 사라진 것처럼만 보이게 한다.
'개발 > 국비교육' 카테고리의 다른 글