트랜잭션 적용 댓글처리, 삭제,

Hwawon_2·2022년 5월 3일
0

프로젝트 SpringBoard로 돌아와서 aspectj 관련 의존성 pom.xml에 추가해주고 root-context.xml 설정을 해줍니다.
(전글 참고)

board_tbl에 replycount컬럼을 추가하겠습니다.

(commit;꼭 해줘야함)

com.ict.domain
BoardVO에 방금 추가한 replyCount를 추가해줍니다.

boardMapper.xml에 select부분에 replyCount 추가 해줘야함

(별을 이용해서 다 불러오고 있기 때문에 따로 수정은 필요없음)

boardMapper 인터페이스에

bno는 해당 게시물의 번호, amount는 변동값을 나타내며, 마이바티스는 기존적으로 하나의 파라미터를 쓰는것을 전제로 하기 때문에 위와 같이 2개 이상을 정의 할때는 @Param 어노테이션을 붙여준다.

boardmapper.xml
amount로 댓글의 증감을 나타내고, bno로 해당 글이 몇번이 었는지 카운팅해 댓글 숫자를 가늠합니다.

이제 댓글 추가와, replyCount 컬럼 업데이트라는 작업이 댓글 쓰기라는 하나의 서비스에 동반실행됩니다.
즉, 트랜잭션의 대상이 됩니다.
replyServiceImpl내부에서 boardMapper를 사용할 수 있게 처리 합니다.

삭제시 댓글 갯수를 1줄이는 작업부터 하겠습니다.
먼저rno만을호 bno를 유추해야 하기 때문에 ReplyMapper쪽에 getBno메서드를 정의 및 구 구현합니다.

ReplyMapper.xml

메서드는 리플 삭제라는 하나의 서비스 기능 구현에 실행시에는 정작 3개의 쿼리문을 돌려야 하기 때문에 반드시 트랜잭션이 적용해야 합니다.

boardList.jsp

실행해 보면




댓글이 삭제되는걸 확인 할 수 있습니다.

=========
register

replyServiceImpl

실행해보면

댓글작성을 하고

글목록으로 나가면

댓글 갯수가 늘어난걸 확인할 수 있다.

==
글삭제시
1. 댓글 전체 삭제(replyMapper에 쿼리문 및 메서드 추가해야함)
2. 글 삭제
순 으로 삭제되어야 논리적 구조가 맞으므로 개선해 보겠습니다.
먼저
replyMapper.java

replyMapper.xml

boardServiceImpl

실행해보면

196608번이 삭제된걸 확인할수 있습니다.

profile
코딩 일기장

0개의 댓글