| 폼 데이터
Form Data란 HTML 요소인 <form> 태그에 실려 전송되는 데이터를 말합니다.
<form> 태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받는데
이 객체를 DTO (Data Transfer Object)라고 하며 데이터베이스에 저장됩니다
| 폼 데이터를 DTO로 받기
1. 입력 폼 만들기
2. 컨트롤러 만들기
3. 폼 데이터 전송하기
페이지에서 만든 버튼을 클릭했을 때 정보를 전송하는 기능을 구현했습니다.
4. 폼 데이터 받기
폼 데이터에서 post 방식으로 전송했으므로
서버의 컨트롤러가 @PostMapping()을 사용하여 받습니다.
@PostMapping() 안에는 받는 URL 주소를 넣습니다.
5. DTO 만들기
DTO는 .dto라는 확장자로 사용하며 Pakage를 추가해 새로 Java Class를 만들었습니다.
폼 데이터에서 제목과 내용을 전송할 예정이어서
DTO에서도 title, content 필드를 생성했습니다.
특이했던 점은 인텔리제이에서만 그런지 모르겠는데 우측 마우스 클릭으로
Generate > Constructor 기능을 사용해 자동으로 필드를 생성자로 만들 수 있었습니다.
6. 폼 데이터를 DTO에 담기
PostMapping에서 선언했던 데이터를 form 매개변수로 받아 처리했습니다.
7. 입력 폼과 DTO 필드 연결하기
폼 페이지에서 속성을 추가하여 DTO의 제목과 내용 필드에 연결했습니다.
결과)
| DTO를 데이터베이스에 저장
DB에서 JAVA로 명령을 내릴 때는 JPA API를 사용해 자바 언어로 DB에 명령을 내릴 수 있습니다.
JPA의 핵심 도구
- Entity :
자바 객체를 DB가 이해할 수 있게 만든 것, entity 기반으로 테이블이 생성됨
- Repository :
entity가 DB 속 테이블에 저장 및 관리될 수 있게 하는 인터페이스
| 실습
1. DTO를 Entity로 변환하기
앞서 @PostMapping을 통해 폼에서의 입력을 DTO로 받는 메서드를 구현했는데
그 메서드에서 DTO를 Entity로 바꾸는 작업을 진행했습니다.
Article이라는 DB를 관리하는 클래스를 만들었습니다.
@Entity로 선언하였고
@Id로 엔티티의 대푯값을 지정@GeneratedValue로 숫자가 자동으로 매겨지도록 했으며@Column을 통해 필드를 선언하고 DB 테이블과 연결되도록 하였습니다.
2. Repository를 이용해 Entity를 DB에 저장하기
ArticleRepository라는 클래스를 만들었으며
이 클래스에서 Aticle 엔티티를 저장하도록 했습니다.
| DB 데이터 조회
properties 파일에 H2 DB에 웹 콘솔로 접근할 수 있게 허용해 주고
localhost:8080/h2-console 페이지에 접속해서 jdbc를 새로 설정해 주면
폼 페이지에서 추가한 데이터들을 웹 콘솔 DB에서 확인할 수 있었습니다.
결과)
'JAVA > 코딩자율학습-스프링부트' 카테고리의 다른 글
[코딩 자율학습 스프링부트] 7장 게시글 수정하기 : Update (0) | 2024.11.30 |
---|---|
[코딩 자율학습 스프링부트] 6장 게시판 내 페이지 이동하기 (0) | 2024.11.29 |
[코딩 자율학습 스프링부트] 5장 게시글 읽기 : Read (0) | 2024.11.28 |
[코딩 자율학습 스프링부트] 2장 MVC 패턴 (0) | 2024.11.26 |
[코딩 자율학습 스프링부트] 1장 스프링 부트 시작하기 (0) | 2024.11.25 |