프로젝트

[Spring Project] 도서관만들기 #5-3 게시글 상세보기,수정, 삭제

박성하하 2023. 7. 4. 12:22
728x90
반응형

※ 실제작업순서와 포스팅순서가 다를 수 있습니다(프로젝트 진행율과 포스팅날이 다름)

0. 작동사진 및 페이지사진


 

 

1. 상세보기 작동코드

BoardContorller / 게시물 제목 클릭시 bno값을 hidden으로 넘겼다.
BoardService
read mybatis 쿼리
- 게시판화면에서 게시물 클릭시 게시글넘버(bno)를 넘긴다
- bno를 조건으로 게시글 데이터들을 불러온다.

 

 

2. 수정 상세코드

Get,Post 모두 Service는 동일하게(boardService.get) 사용한다. 즉 불러와지는 데이터는 동일하다.

 

BoardService.modifyWithAttach

@Transactional 어노테이션을 사용함으로써 modifyWithAttach() 메서드의 모든 데이터베이스 작업은 하나의 트랜잭션으로 묶이며, 예외 발생 시 롤백될 수 있다.

attachMapper.deleteAll
mapper.update

- 게시물의 사진정보(tbl_attach)를 모두 삭제한다.
- mapper.update를 실행시켜 제목,내용 등의 수정된 내용을 update하고 정상적으로 완료시 1(true)를 return한다
- 게시물에 남아있는 사진들을 모두 다시 저장한다(insert)
- 즉 게시물의 내용들은 즉각적으로 수정되지만, 이미지의 경우는 모두 삭제하고 다시 등록하는 방법으로 수정을 진행한다.
- service(수정)이 모두 처리되면 수정이 완료됐다는 FlashAttribute를 등록한다.
- 페이지 정보는 게시글 어디를 이동하나 가지고 다녀야 하기에 criteria를 파라미터로 받고있고, getListLink를 함께 redirect해준다.

 

3. 게시글 삭제 상세코드

BoardController , 수정과 상당히 비슷하다.
boardService.remove
mapper.remove

- 수정과 동일하게 게시글넘버(bno)를 받아 해당하는 게시글데이터를 삭제한다.
- 삭제가 완료되면 FlashAttribute에 삭제내용을 담아준다.
- 동일하게 criteria.getListLink()와 함께 redirect해준다.

 

 

ps. 나중엔 어떨지 모르겠지만 게시글등록 수정 삭제 같은 1차원적인 service들은 코드짜기 편한 것 같다. 

 

728x90
반응형