스프링 부트, 입문! 15

윤현우·2022년 11월 27일
0

스프링 부트, 입문!

목록 보기
12/18
post-thumbnail

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

수정 페이지에서 수정된 데이터를 DB에 저장하고, 백업하는 연습을 할 것이다.

수정된 데이터를 DTO로 받은 후에 DB에 저장하고 다시 반환한다.


클라이언트에서 서버로의 데이터 전송은 다양한 프로토콜을 통해 이루어진다.
이 중 웹서비스에서 사용하는 프로토콜은 HTTP이다.

다양한 요청을 GET, POST, PATCH/PUT, DELETE등의 메서드를 통해 이루어진다.

데이터의 생성, 조회, 수정, 삭제는 데이터 관리의 가장 기본이 되는 동작으로 CRUD라고 표현된다.
이 CRUD는 SQL에서도 다양한 쿼리로 적용이 된다.


수정 페이지 변경

edit.mustache 페이지를 변경해준다.

  • form 태그는 옛날 지원 방식이라 GET, POST방식만 구현할 수 있다.
  • 이번 시간에는 post를 사용하고 나중에 ajax를 활용하여 put방식을 사용할 것이다.

수정 폼 받기

수정된 데이터를 받을 때 id값도 받아야하기 때문에 DTO페이지를 변경해준다.

private Long id;

  • id 변수를 생성한다.

return new Article(id, title, content);

  • id 변수까지 리턴 값으로 갖게 한다.

이후 Controller의 수정된 데이터 폼을 받는 메서드를 생성한다.
수정된 데이터는 DTO로 변환 후 기존에 있는 데이터 값에 갱신해서 받아진다.

public String update(ArticleForm form)

  • 폼 데이터를 파라미터인 DTO로 받아온다.

Article article = form.toEntity();

  • 받은 DTO를 Entity로 변환한다.

Article target = articleRepository.findById(article.getId()).orElse(null);

  • DB에서 기존 데이터를 가져온다.

if(target != null) { articleRepository.save(article); }

  • 기존 데이터가 있다면 값을 갱신한다.

실행결과

수정 전

수정 후

이렇게 수정이 된 것을 볼 수 있다.


References (참고 자료)
https://www.inflearn.com/course/%EA%B0%9C%EB%85%90%EC%8B%A4%EC%8A%B5-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%9E%85%EB%AC%B8

profile
개발자가 되는 그날까지

0개의 댓글