미리보기
CRUD란 게시글을 생성하고, 조회하고, 수정하고, 삭제하는 것 을 말합니다.
게시판 만들기를 배우면 서버 프로그래밍과 데이터베이스의 기본기를 자연스럽게 익힐 수 있습니다.
3.1 폼 데이터란?
<form>태그에 실려 전송되는 데이터를 말합니다.
<form>태그는 이렇게 웹 브라우저에서 서버로 데이터를 전송할 때 사용합니다.
<form>태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받습니다.
이 객체를 DTO라고 합니다. DTO로 받은 데이터는 최종적으로 데이터베이스에 저장됩니다.
3.2.1 입력 폼 만들기

3.2.2 컨트롤러 만들기


3.2.3 폼 데이터 전송하기
: 웹 페이지에 내용을 입력해 서버로 전송하는 예제를 실습해보자!
앞서 구성한 웹페이지에서 submit 버튼을 누른다고 아무것도 되지 않는다.
데이터를 어디로, 어떻게 보낼 지 관한 정보를 주지 않았기 때문
action 속성(어디에 보낼 지), method 속성(어떻게 보낼 지)
<form class="container" action="/articles/create" method="post">
3.2.4 폼 데이터 받기

3.2.5 DTO 만들기
앞서 컨트롤러에서 폼 데이터를 받을 때 DTO에 담아 받는다고 배웠으니 DTO를 만들어 봅시다.

이 파일이 폼 데이터를 받아 올 그릇, 즉 DTO가 됩니다.
- 입력 폼에서 제목과 내용을 전송할 예정이니 DTO에도 필드 2개가 필요합니다.




3.3.1 데이터베이스와 JPA
어떻게 DB에 자바로 명령을 내릴 수 있을까요?
바로 JPA를 사용하면 됩니다!
이번에는 앞에서 DTO로 받은 폼 데이터를 DB에 저장하는 예제를 실습해보겠습니다.
순서
1. DTO를 엔티티로 변환하기
2. 레포지토리를 이용해 엔티티를 DB에 저장하기
3.3.2 DTO를 엔티티로 변환하기

- article 엔티티 생성
- toEntity() 메서드 생성
3.3.3 레포지토리로 엔티티를 DB에 저장하기
: 다음으로 레포지토리로 엔티티를 DB에 저장하겠습니다.

- 레포지토리 만들기
- 객체 주입하기
@Autowired는 스프링 부트에서 제공하는 어노테이션으로 이를 컨트롤러의 필드에 붙이면
스프링부트가 만들어놓은 객체를 가져와 주입해줍니다. 이를 의존성 주입이라고 합니다.
-> 인터페이스의 구현 객체를 new 키워드로 안만들어도 됨
- 데이터 저장 확인하기(article 엔티티가 정말 DB에 테이블로 저장됐는 지 확인)


3.4.1 H2 DB 접속하기


3장 끗

'Spring' 카테고리의 다른 글
| [스프링부트3 자바백엔드개발입문] 8장 게시글 삭제하기 : Delete (0) | 2023.09.24 |
|---|---|
| [스프링부트3 자바백엔드개발입문] 7장 게시글 수정하기 : Update (0) | 2023.09.23 |
| [스프링부트3 자바백엔드개발입문] 5장 게시글 읽기 : Read (0) | 2023.09.22 |
| [스프링부트3 자바백엔드개발입문] 2장 MVC 패턴 이해와 실습 (0) | 2023.09.21 |
| [스프링부트3 자바백엔드개발입문] 1장 스프링부트 시작하기 (0) | 2023.09.21 |