본문 바로가기
개발자/비트캠프

프로젝트 코드 변경 사항 및 메모 #7

by mingutistory 2020. 5. 13.
728x90

 

💡 댓글, 대댓글

3. 댓글 수정 

댓글 수정을 클릭하면 하단에 입력창이 생성되고 내용이 자동 입력 된다. 수정이 된 경우에는 수정 된 글이라는 안내글이 작성자 이름 하단에 추가된다. qna 게시판의 특성상 말이 바뀐 것을 확인 해야 한다고 생각해서 수정이 된 경우에는 수정이 되었다고 안내 될 수 있도록 하였다. 

 

4. 댓글 삭제

댓글이 달린 경우 삭제를 할 수 없게 안내하였다.

가장 마지막 댓글만 삭제 할 수 있고 삭제 된 경우에는 reply_content가 [삭제 된 댓글입니다.] 라는 식으로 변경되고 reply_delete 컬럼이 1로 수정되고 실제로 데이터베이스에서 삭제 되진 않는다. 이 부분이 괜찮은 방법인지 모르겠다. 하지만 바로 qna 게시판의 특성상 바로 삭제가 되어버리는건 아닌 것 같아서 일단 이런 식으로 설계하였다. 

 

5. 대댓글

	<insert id="insertReReply" parameterType="com.spring.community.ReplyVO">
		insert into qna_reply values(REPLY_SEQ.NEXTVAL, #{qna_num}, sysdate, #{reply_content}, #{member_id}, 
		#{reply_group}, (select max(reply_order) from qna_reply where reply_group = #{reply_group})+1 , 0, 0)
	</insert>	

최대한 sql문을 분리하지 않으려 했다. 대댓글 기능에 대해서는 조금 더 생각을 해봐야 할 것 같다.

우선은 1번에 대한 답글, 1-1에 대한 답글 모두 가장 밑에 입력이 된다. 삭제에 대한 것이 조금 공평하지 않은  느낀인가 싶기는 하지만 ..

 

6. 댓글 개수

resultType = "int"를 명시해주지 않아서  org.apache.ibatis.executor.ExecutorException :  A query was run and no Result Maps were found for the Mapped Statement ~ 이런 오류 메세지를 보았다. 당연한 일이구만. 

	<select id = "getReplyCount" parameterType="com.spring.community.ReplyVO" resultType="int">
		select count(*) from qna_reply where qna_num = #{qna_num}
	</select>

 

우선 댓글 마무리 완료.

 

리스트에서 조회수 보이게 하는 걸 하고 싶어서 sql문 짜고 있는데 잘 안된다. 

 

7. 조회수 뻘짓

select q.qna_num as qna_num, qr.reply_seq as reply_seq from qna q, qna_reply qr 
where q.qna_num = qr.qna_num(+)

count() 함수를 이용해야할 것 같은데 사용 법을 제대로 모르겠다. 일단 덧글이 달리지 않은 곳에 0이 표시가 되어줘야 되기 때문에 null값을 0으로 바꿔주고, 그 뒤에 저 45를 카운트 하는 방법을 찾는 중.

300x250

댓글