Springboot

Springboot CRUD게시판 - update

colin2 2024. 3. 1. 11:47

2024.02.27 - [Springboot] - Springboot CRUD게시판 - selectOne (getGuestbook)

 

이번에는 상세 보기 페이지에서 메모를 수정한 뒤, update 하는 작업을 해 볼 것이다.

 

상세 보기를 만들 때 이미 form을 추가해 두었기 때문에, 수정 후 submit을 클릭하면 guestbookUpdate.do로 이동할 것이다.

 

우선 방명록 목록에서 2001번 방명록이라고 되어 있는 레코드를 선택할 것이다.

 

GuestbookController.java 파일에서 guestbookUpdate.do mapping을 해주고, update를 한 후에는 getGuestbookList.do로 이동할 수 있도록 해준다.

 

vo에 값이 잘 들어갔는지 확인하기 위해 console에 찍어 본 후, update를 해주었다.

(확인 후에는 삭제해 주자)

 

기본 이동 방식은 forward이기 때문에 redirect로 이동을 구현하기 위해서는 리턴할 때 이렇게 redirect를 적어주어야 한다.

 

설명은 역시 Chat-GPT.

Redirect (리다이렉트):

  1. 키워드: redirect:를 사용합니다.
  2. 목적:
    • 클라이언트에게 새로운 URL로 이동할 것을 알립니다.
    • 외부 URL 또는 다른 컨트롤러의 메서드로의 이동이 가능합니다.
  3. 특징:
    • 클라이언트의 브라우저는 새로운 URL로 이동하며, 두 번의 요청이 이루어집니다.
    • 주로 외부 URL로의 리다이렉트 또는 컨트롤러 간 이동에 사용됩니다.

Forward (포워드):

  1. 키워드: forward:를 사용합니다.
  2. 목적:
    • 같은 서버 내에서 다른 컨트롤러나 뷰로 이동할 때 사용됩니다.
    • 클라이언트에게 새로운 요청을 보내지 않습니다.
  3. 특징:
    • 클라이언트의 브라우저는 새로운 URL로 이동하지 않습니다.
    • 요청은 같은 서버 내에서 다른 컨트롤러나 뷰로 전달됩니다.

선택 기준:

  • Redirect 사용 시:
    • 외부 URL로 이동하거나 완전히 새로운 요청을 보내고자 할 때.
    • 클라이언트에게 새로운 URL로 이동함을 노출하고 싶을 때.
  • Forward 사용 시:
    • 같은 서버 내에서 다른 컨트롤러나 뷰로 전환할 때.
    • 클라이언트에게 새로운 요청을 보내지 않고 내부적으로 이동하고자 할 때.

 

자 그럼 guestbook-mapper.xml 파일에 update를 위한 쿼리문을 작성해 준다.

 

현재는 선택한 guestbook_idx의 guestbook_memo만 수정하도록 되어 있으나, 혹시 수정할 것이 더 있다면 set에 추가하면 된다.

 

해당 쿼리문을 받을 GuestbookDao.java 파일도 추가해 주고,

 

GuestbookService.java 파일도 추가해 주고,

 

GuestbookServiceImpl.java 파일도 추가해 준다.

 

위에서 말한 대로 20001 레코드를 클릭하여 수정할 내용을 적어준다.

 

그다음 수정을 클릭하면, 20001 레코드의 메모가 수정이 된 것을 확인할 수 있다.

 

이렇게 update까지 되었으니, 마지막으로 delete까지 만들어주면 기본 CRUD 작업은 마무리가 된다.