[Spring]데이터 수정하기

윤재열·2022년 2월 6일
0

Spring

목록 보기
15/72

수정페이지의 데이터를 DB로 갱신하고 확인하기

  • 수정을 했을 떄 에러 페이지가 나오는게 아닌 수정된 페이지가 나오게 만들어봅니다.

1. 더미 데이터 생성

  • 서버를 껏다 켰다 할 일이 많은데, 더미데이터를 자동으로 생성할 수 있게 코드를 작성합니다.

  • resources에 새로운 파일 data.sql이라는 파일을 만들어 줍니다.

  • 만든 후에 INSERT INTO article(id, title, content)VALUES(1,'가가가가','11111')이렇게 3개를 만들어 줍니다.

  • 이렇게 되면 서버를 껏다 켜도 항상 더미데이터 3개가 들어와집니다.

  • 만약 데이터 등록이 안된다면 application.properties에 이와 같이 입력해 줍니다.

  • 서버를 재시작 해보니 더미데이터가 잘 등록 된것을 볼수 있습니다.

2. 수정 페이지 변경

  • 전에 공부했던 edit.mustache 에서 action의 값을 비워놨던 것이 기억납니다.
  • 이렇게 action ="/articles/update"라고 입력해줍니다.
  • method속성에서는 공부했던 것 처럼 이렇게 데이터를 가져올지 만들지 수정할지 삭제할지를 다양한 방법으로 전송할수 있다는 것을 알고 있습니다. 하지만 아쉽게 지금은 post를 이용합니다.
    왜냐하면 <form>태그는 get,post만 지원하기 때문입니다.(PATCH메서드를 지원하지 않습니다.)
  • 한가지 더 보내줄 값이 있습니다. 바로 몇번 article을 변경할지에 대한 정보 id값도 input값으로 넣어 주어야합니다.(id값을 hidden해서 던진다)
  • 다시 컨트롤러로 돌아와서 @PostMapping("/articles/update")를 만들어줍니다.
  • 그때 form데이터를 dto로 받아오면됩니다. 그런데 id라는 값이 추가가 되었으니 마찬가지로 dto에도 id를 추가해 줘야합니다.
  • Long 타입의 id를 만들어 준뒤 toEntity()메서드의 null을 id로 바꿔줍니다.

3.컨트롤러 처리 개요

  • dto를 Entity로 변환해주는 메서드를 작성합니다.

  • 전과 같이 DB에 저장되었던값을 가져온후에 if문을 사용해서 만약 가져온 값이null이 아니라면 entity가 DB로 저장되게 만들어 줍니다.

  • 1번id 의 내용을 이렇게 수정한다고 하면

  • DB에도 똑같이 수정되어 저장되는 것을 알 수 있습니다.

  • 이제 마지막 결과 페이지를 리다이렉트 해준다면 1번 id가 변경 되었을때는 바뀐 1번의 데이터를 보여주게 합니다.

  • 이렇게 리다이렉트로 변경된 페이지로 잘 이동이 되었습니다.

4.SQL로 데이터 수정하기

  • 이렇게 저장된 데이터를 직접 바꿔보겠습니다.

  • 잘 바뀐 것을 알 수 있습니다.
profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글